2015-10-14 64 views
0

我使用Fabric js創建了一些視覺元素。在我的項目中,路徑正在更新。但問題是,路徑的測量結果並不如預期。FabricJS:如何獲取更新路徑的位置

Refrer到jsFiddle

var canvas = new fabric.Canvas('c', {width: 400, height: 400}); 

var line = new fabric.Path('M,50,50,L,50,150,150,150,150,50,Z', {    
    fill: 'blue' 

}); 

line.setCoords(); 

// During update 
line.initialize('M,150,50,L,150,150,300,150,300,50,Z') 
line.setCoords(); 
canvas.renderAll(); 

在樣本路徑最初繪製50像素從畫布走左邊框。然後我改變了路徑命令,使它向右移動100px。

但是在更新路徑之後,形狀實際上位於離左側175px的位置。 此外,路徑元素的左側屬性不會更改。

此外,無法獲得所有這些屬性和它們之間的關係一樣, 左側,頂部的scaleX,的scaleY,高度,寬度,pathOffset,oCoords,originalState等在類的路徑中的各種條件/畫布縮放的想法,旋轉,移動,放置在一個組中等等。

+0

此鏈接很好地描述你的困惑與Path對象的left, top性質喜歡玩[鏈接](HTTP:// fabricjs .com/fabric-intro-part-1 /#path_and_pathgroup) –

+0

@HarshMakani,我已經通過鏈接了,但是我無法得到爲什麼路徑在更新後移動了25個像素的想法。不知道我是否缺少某些東西。 –

回答

0

我不確定你要達到什麼效果,但initialize方法不是更新方法,而是它的類的構造函數,你實際上覆蓋了初始對象的路徑。

如果你只是想在你原來生成的路徑移動,你應該在這個更新fiddler