FabricJS:object:当用户选择多个对象时,移动事件不会触发

时间:2014-11-26 21:17:31

标签: javascript selection drag fabricjs

在FabricJS中,有一个对象:你可以触发一个函数的移动事件,我已经装配了这些函数以保持与点相关的线条,就像他们在火柴人演示中一样:http://fabricjs.com/stickman/

在他们的演示中,他们已经能够通过单击并拖动它们周围的方块来选择点,然后通过单击并拖动来移动选择的对象。在我的情况下,我希望用户能够选择多个点并同时拖动它们,但是现在发生的是线条与点断开连接。这个确切的问题在它们的二次曲线示例中说明:http://fabricjs.com/quadratic-curve/。一次选择两个点并拖动您的选择......它将断开线与点的连接。

移动选择时有没有办法找出事件?它似乎在动态创建一个组,但我尝试使用selection:created事件来获取该组并再次设置一个对象:在组中的每个对象上移动事件处理程序,但没有成功。这里有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以采取两种方法。

  1. 在画布中为“object:moving”事件添加一个监听器。这将触发任何移动的对象或组。 canvas1.on('object:moving', function(event) { console.log("object:moving"); });

  2. 创建选择组后,您可以直接向组中添加移动事件。

    canvas1.on('selection:created', function(event) { canvas1.getActiveGroup().on('moving', function(event) { console.log('moving'); }); console.log("selection created"); });

  3. 这个小提琴有两个例子。 http://jsfiddle.net/pxnfbt89/