Html5 canvas Kineticjs lyaer拖动和层内节点拖动冲突

Html5 canvas Kineticjs lyaer拖动和层内节点拖动冲突,html5-canvas,kineticjs,Html5 Canvas,Kineticjs,我在Kineticjs中有一个层,其中有更多的形状,请参见附图: 我们可以将图层内容分为两部分: 1.对象(矩形) 2.可以缩放对象的选择节点(4个角)和可以旋转对象的旋转标志 我在层拖动上有事件处理程序(因为我需要同时移动所有元素),在缩放节点和旋转符号上也有事件处理程序。问题在于,当触发节点和旋转符号的拖动(结束、开始、移动)时,也会自动触发图层拖动事件 我尝试设置层。设置监听(false)然后返回到真,但没有结果。 在拖动缩放节点和旋转符号时,如何使层的事件不被触发 [编辑] 这里有一个U

我在Kineticjs中有一个层,其中有更多的形状,请参见附图: 我们可以将图层内容分为两部分: 1.对象(矩形) 2.可以缩放对象的选择节点(4个角)和可以旋转对象的旋转标志

我在层拖动上有事件处理程序(因为我需要同时移动所有元素),在缩放节点和旋转符号上也有事件处理程序。问题在于,当触发节点和旋转符号的拖动(结束、开始、移动)时,也会自动触发图层拖动事件

我尝试设置
层。设置监听(false)
然后返回到
,但没有结果。 在拖动缩放节点和旋转符号时,如何使层的事件不被触发

[编辑] 这里有一个UML图,可以看到我的层的结构。每个层直接添加到后台:

您可以将所有元素(矩形等)放在一个Kinetic.Group中,将您的scale+旋转锚定在第二个Kinetic.Group中

这样,您可以通过移动矩形组同时移动所有矩形

当您想要拖动缩放/旋转锚点时,可以在rects层上将“侦听”设置为false


当缩放/旋转锚使用setX/setY移动时,您仍然可以使矩形移动。

我已经附上了我的层的UML图。这就是我的层的结构。在我的例子中,可以通过拖动图层来移动项目。我选择了移动层,而不是移动对象,这仅仅是因为正如你们所看到的,我有一个grSel组,其中包含在选择中出现的节点。这些对象必须同时随图层移动。这很好,但当我拖动缩放节点时,似乎也会自动触发层拖动事件。这对我来说并不好,因为这两种方法都向历史数组添加了一个条目,但只需要一个条目。