2015-10-14 87 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