【发布时间】:2013-03-19 00:15:24
【问题描述】:
我正在尝试基于以下 kineticjs JavaScript 代码创建一个形状:
var triangle = new Kinetic.Shape({
drawFunc: function(canvas) {
var context = canvas.getContext();
context.beginPath();
context.moveTo(200, 50);
context.lineTo(420, 80);
context.quadraticCurveTo(300, 100, 260, 170);
context.closePath();
canvas.fillStroke(this);
},
fill: '#00D2FF',
stroke: 'black',
strokeWidth: 4
});
这是可以在以下位置找到的示例:http://www.html5canvastutorials.com/kineticjs/html5-canvas-kineticjs-shape-tutorial/
我的打字稿是这样的:
var square = new Kinetic.Shape({
drawFunc: (canvas: any) => {
var ctx = canvas.getContext();
ctx.beginPath();
ctx.moveTo(25, 25);
ctx.lineTo(475, 25);
ctx.lineTo(475, 475);
ctx.lineTo(25, 475);
ctx.closePath();
canvas.fillStroke(this);
},
fill: '#FF0000',
});
生成的 JavaScript 如下所示:
var square = new Kinetic.Shape({
drawFunc: function (canvas) {
var ctx = canvas.getContext();
ctx.beginPath();
ctx.moveTo(25, 25);
ctx.lineTo(475, 25);
ctx.lineTo(475, 475);
ctx.lineTo(25, 475);
ctx.closePath();
canvas.fillStroke(_this);
},
fill: '#FF0000'
});
问题出现在canvas.fillStroke(_this) 行。 _this 引用的是我的打字稿类,而不是 JavaScript 示例中生成的形状。我还尝试将我的打字稿中的canvas.fillStroke(this) 替换为() => canvas.fillStroke(this),但结果是一样的。
有什么想法吗?
【问题讨论】:
标签: javascript typescript kineticjs