2014-03-07 42 views
0

我一直在搞coffeescript,我想用Kinetic.js来执行一些图形操作。用coffescript扩展kinetic.js形状

我真的很喜欢coffeescripts类,所以我想用它们来创建自定义的精灵。

下面是我的延长Kinetic.Circle的尝试:我在this问题建议并没有在构造函数中使用“超级”

class Particle extends Kinetic.Circle 
    constructor: (x,y,size,color) -> 
     Kinetic.Circle.class @, { 
      x: x 
      y: y 
      width: size 
      height: size 
      fill: color 
     } 

注意。

当调用了以下错误抛出的构造函数:

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

'Kinetic.Circle'没有静态'.class()'方法,你从哪里得到它的?看起来应该是'Kinetic.Circle.call'。 –

+0

我从链接的问题中得到它,尝试了你的建议,它的工作!添加它作为一个答案,我会接受:) – monoceres

回答

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 

这正是在一个链接的问题建议。

+0

嗯,我猜这原来只是我的那一部分愚蠢。谢谢! – monoceres