用coffeescript扩展kinetic.js形状

时间:2014-03-07 09:29:08

标签: javascript coffeescript kineticjs

我一直在搞乱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风格的动力学形状?

1 个答案:

答案 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

这正是链接问题中建议的内容。