2014-03-07 41 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