我一直在搞乱coffeescript,我想用Kinetic.js来执行一些图形操作。
我非常喜欢coffeescripts类,所以我想用它们来创建自定义精灵。
以下是我尝试扩展Kinetic.Circle:
class Particle extends Kinetic.Circle
constructor: (x,y,size,color) ->
Kinetic.Circle.class @, {
x: x
y: y
width: size
height: size
fill: color
}
请注意,我没有按this问题中的建议在构造函数中使用“super”。
调用构造函数时,抛出以下错误:
Uncaught TypeError: Object function (a){this.___init(a)} has no method 'class'
...在生成的javascript中:
Particle = (function(_super) {
__extends(Particle, _super);
function Particle(x, y, size, color) {
Kinetic.Circle["class"](this, {
x: x,
y: y,
width: size,
height: size,
fill: color
});
}
return Particle;
})(Kinetic.Circle);
是否有可能在不使用太多暴力的情况下扩展coffeescript风格的动力学形状?
答案 0 :(得分:1)
Kinetic.Circle
没有静态.class()
方法,我不知道你从哪里得到它。
看起来应该是Kinetic.Circle.call
:
class Particle extends Kinetic.Circle
constructor: (x, y, size, color) ->
Kinetic.Circle.call @,
x: x
y: y
width: size
height: size
fill: color
这正是链接问题中建议的内容。