2012-11-12 72 views
3

有沒有辦法獲得Kinetic.Path對象的寬度和高度?它總是返回零。獲取Kinetic.Path的大小

var path = new Kinetic.Path({ 
    x: 40, 
    y: 40, 
    data: "m 148.57143,-1.9235271 200,82.8571401 L 257.14286,300.93361 2.8571414,263.79075 z", 
    stroke: "green", 
    draggable: true 
}); 

layer.add(path); 

stage.draw(); 

console.log(path.getWidth()); // returns zero 

回答

4

KineticJS不計算路徑的邊界框。您必須使用路徑的數據自己計算它們。爲此,我編寫了處理這些路徑的代碼。

https://gist.github.com/4075955

但是,代碼目前僅支持線,而不是曲線或弧線。代碼發佈到公共領域,所以我鼓勵任何人修改它。

實施例:

var dimensions=getPathDimensions(path); 
var width=dimensions.width; 
0

對不起,沒有排序的指標功能並未被內置到路徑形狀(即,要獲得的高度,寬度等)。

那麼,除了從長度:

Kinetic.Path.calcLength =函數

(僅旨在用於在路徑中單個元件被使用(X,Y,CMD,點),即,元件的解析Path.dataarray)