2013-10-14 99 views
0

我见过用拖动绘制形状的解决方案&通过捕捉拖动实现拖放(线条,反射等)&在图层或舞台上拖放事件,但我想知道是否可以用新形状本身的DD事件来做到这一点。KineticJS - 用拖放绘制形状

由于我处理了很多形状,如果形状本身在这种情况下处理它们的DD事件,它将使代码更加清晰和OO。

因此,当舞台/图层收到dragstart时,将在该点创建一个新形状(即线条),然后所有其他绘图将不由舞台/图层dragmove/dragend处理,而是由NEW形状的dragmove/dragend。我试图用fire('dragstart')做到这一点,但它只是运行形状的dragstart事件的代码..它实际上并没有将形状放入拖动模式,也就是说,它不会触发任何拖动移动拖动时的形状(这是一个错误?)

任何帮助吗? 谢谢!

回答

1

不可能...任何形状的鼠标事件只在鼠标超过该形状时才会响应。

由于线条的下一个段落尚不存在,因此您不能在不存在的下一个段落上拖动/移动/单击鼠标。

或者,您可以轻松而高效地创建一个全新的折线是这样的:

  • 是的......听在舞台上的鼠标事件。
  • 在mousedown中,用1点= mousedown位置创建一个新的Kinetic.Line。
  • 在mousemove中,将所有mousemove位置添加到行点数组(在运行中构建多段线)
  • 在mouseup中,行是完整的。
+0

好的,谢谢 我还需要以后对线的边缘把手,让移动/伸缩,所以我试图避免重复代码,但我想我做不到.. 我还是选你的答案 – kofifus