我计划在我的应用程序中创建一些可以用作组的元素。例如,我可以创建一个圆形、一个三角形和一个正方形并将它们分组。所以我可以拖放组等。我有时也希望能够单独编辑组元素。
为此,我可以为组调用 setDraggable(false) 并为所有孩子调用 setDraggable(true) 并单独编辑它们。当我希望将它们视为一个组时,我可以为组形状调用 setDraggable(true),为组的所有子代调用 setDraggable(false)。
我认为这部分运作良好。问题是事件处理。我试图搜索它,但我没有找到任何关于分组对象上的事件行为的内容。据我注意到,来自组子项的事件会覆盖来自组的事件调用。例如,如果组中的元素 E1 具有“onclick”事件,并且当我单击 E1 时组对象也具有“onclick”事件,则唯一将触发的事件是来自 E1 对象的事件。
所以.... TL;DR:有人能解释一下事件触发在 KineticJS 上是如何与组、子组和嵌套组一起工作的吗?
编辑:
http*//jsfiddle*net/Kaze_Senshi/GKFrK/ 我为测试 KineticJS 的组行为而制作的一个小项目。一开始有一组带有矩形,一组带有圆形,您可以加入组并从方形组中移动每个元素,分别单击屏幕左侧的按钮。这是一个非常简单的页面,带有丑陋的代码,仅用于测试目的。
https://github.com/wfaria/sketchProject/blob/development/tests/interfaceResourceTest.html 最后我想用 KineticJS 从我的项目中操作组对象,因此我正在做这些问题,我认为你看这个单一的测试页面就可以理解它是如何工作的。您可以在 src/Model/InterfaceResource.js 中找到更多详细信息