【发布时间】:2014-05-26 00:40:42
【问题描述】:
所以我尝试使用 kinetic.js 创建自定义形状,但遇到了问题。 我在单击时调用了一个应该显示新绘图的函数,但出现错误:
Uncaught TypeError: undefined is not a function
功能代码如下:
function helpShow(){
var stage = new Kinetic.Stage({
container: 'SkateboardCanvas',
width: 800,
height: 500
});
var layer = new Kinetic.Layer();
var helpMenu = new Kinetic.Shape({
drawFunc: function(context) {
context.beginPath();
context.moveTo(600,500);
context.lineTo(600,450);
context.moveTo(200,500);
context.lineTo(600,500);
// x1, y1, x2, y2, radius
console.log(context);
context.arcTo(600,350,550,350,50);
context.lineTo(250,350);
context.moveTo(200,500);
context.lineTo(200,450);
context.arcTo(200,350,250,350,50);
context.closePath();
context.fillStrokeShape(this);
},
fill: 'rgba(255, 255, 255, 0.5)',
stroke: 'black',
strokeWidth: 4
});
layer.add(helpMenu);
console.log(layer);
console.log(stage);
stage.add(layer);
}
引发错误的行是:
context.arcTo(600,350,550,350,50);
这里是显示所有内容的控制台日志。
Kinetic.Layer {nodeType: "Layer", canvas: Kinetic.SceneCanvas, hitCanvas: Kinetic.HitCanvas, children: Kinetic.Collection[1], _id: 2…} creatorCanvas.js:86
Kinetic.Stage {nodeType: "Stage", children: Kinetic.Collection[0], _id: 1, eventListeners: Object, attrs: Object…} creatorCanvas.js:87
Kinetic.SceneContext {canvas: Kinetic.SceneCanvas, _context: CanvasRenderingContext2D, _fillColor: 函数, _fillPattern: 函数, _fillLinearGradient: 函数…}
此外,画布和上下文在 JavaScript 文件的顶部定义如下:
var canvas = $("#SkateboardCanvas");
var context = canvas.get(0).getContext("2d");
我对这一切都比较陌生,所以任何关于为什么会发生这种情况的帮助/解释都会很棒,或者如果我是一个完全的新手,我很抱歉。
【问题讨论】:
标签: jquery html canvas undefined kineticjs