在FabricJS中,有一个对象:你可以触发一个函数的移动事件,我已经装配了这些函数以保持与点相关的线条,就像他们在火柴人演示中一样:http://fabricjs.com/stickman/
在他们的演示中,他们已经能够通过单击并拖动它们周围的方块来选择点,然后通过单击并拖动来移动选择的对象。在我的情况下,我希望用户能够选择多个点并同时拖动它们,但是现在发生的是线条与点断开连接。这个确切的问题在它们的二次曲线示例中说明:http://fabricjs.com/quadratic-curve/。一次选择两个点并拖动您的选择......它将断开线与点的连接。
移动选择时有没有办法找出事件?它似乎在动态创建一个组,但我尝试使用selection:created事件来获取该组并再次设置一个对象:在组中的每个对象上移动事件处理程序,但没有成功。这里有什么想法吗?
答案 0 :(得分:2)
您可以采取两种方法。
在画布中为“object:moving”事件添加一个监听器。这将触发任何移动的对象或组。
canvas1.on('object:moving', function(event) {
console.log("object:moving");
});
创建选择组后,您可以直接向组中添加移动事件。
canvas1.on('selection:created', function(event) {
canvas1.getActiveGroup().on('moving', function(event) {
console.log('moving');
});
console.log("selection created");
});
这个小提琴有两个例子。 http://jsfiddle.net/pxnfbt89/