2014-06-23 62 views
3

我试图在每次特定织物对象“取消选择”时执行一些代码。是否有任何取消选择活动可以处理?我已经有了一个函数,用于何时通过所选事件选择对象,但尚未找到有关取消选定对象的任何文档。在画布级别,我有选择:清除和选择:创建事件,但没有选择。取消选择fabric.js对象事件

干杯, 贡萨洛

回答

11

使用before:selection:cleared事件并获得活动对象或组。之后,您可以检查它是否与您的特定结构对象相对应。

canvas.on('before:selection:cleared', function() { 
    var clearedObject; 
    if(typeof(canvas.getActiveObject()) !== 'undefined') { 
     clearedObject = canvas.getActiveObject(); 
    } 
    else { 
     clearedObject = canvas.getActiveGroup(); 
    } 
    //do stuff with the deselected element if it is the specific one you want. 
}); 
+1

第3行有一个小错字,右括号应该在.getActiveObject()调用之后。 另外,在最后一行有一个缺失的“)”。 – Moritur

1

只是为了让大家都知道的Fabric.js最新版本包括一个deselected事件为Object class。您现在唯一需要做的事情是:

var aFabricObject = <create your fabric object> 

aFabricObject.on('deselected', function (options) { 
    // your code here 
}); 
+0

这也是在文档中提到的,但不知何故,当对象被取消选择时它不会触发! – theHarsh