【问题标题】:FabricJS: object:moving event doesn't fire when user selects multiple objectsfabricjs:对象:当用户选择多个对象时,移动事件不会启动
【发布时间】:2015-01-25 08:45:17
【问题描述】:

在 FabricJS 中,有一个 object:moving 事件,您可以为其触发一个函数,我已经对其进行了装配,以保持线条与点的连接方式与火柴人演示中的方式相同:http://fabricjs.com/stickman/

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

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

【问题讨论】:

    标签: javascript selection drag fabricjs


    【解决方案1】:

    您可以采取两种方法。

    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"); });

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-25
      • 2020-11-02
      • 1970-01-01
      • 2018-12-26
      • 1970-01-01
      • 2018-09-07
      • 2017-07-11
      • 2014-07-27
      相关资源
      最近更新 更多