0

我已经看到通过在图层或舞台上捕获拖放事件来实现使用拖放(线条、矩形等)绘制形状的解决方案,但我想知道是否可以使用新形状本身的 DD 事件来做到这一点。

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

因此,当舞台/图层接收到拖动开始时,将在该点创建一个新形状(即线),然后所有进一步的绘图将不由舞台/图层拖动移动/拖动处理,而是由新形状的拖动移动/拖动处理。

我尝试使用 fire('dragstart') 来执行此操作,但它只是运行形状的 dragstart 事件的代码.. 它实际上并没有将形状置于拖动模式,也就是说,它不会在形状上触发任何 dragmove 事件拖动时(这是错误吗?)

有什么帮助吗?谢谢!

4

1 回答 1

1

不可能...任何形状的鼠标事件仅在鼠标悬停在该形状上时才会响应。

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

或者,您可以轻松高效地创建一条全新的折线,如下所示:

  • 是的...听舞台上的鼠标事件。
  • 在 mousedown 中,创建一个新的 Kinetic.Line,其中 1 点 = mousedown 位置。
  • 在 mousemove 中,将所有 mousemove 位置添加到 lines 点数组(即时构建折线)
  • 在 mouseup 中,该行是完整的。
于 2013-10-14T20:54:24.863 回答