每次特定的结构对象被取消选择时,我都会尝试执行一些代码"。我可以处理任何取消选举事件吗?我已经通过所选事件选择了对象的时间,但是没有找到任何关于取消选择的文档的文档。在画布级别,我有选择:已清除和选择:已创建事件,但取消选择也没有。
干杯, 贡萨洛
答案 0 :(得分:15)
使用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 :(得分:1)
只是让大家知道最新版本的Fabric.js包含Object class的deselected
事件。你现在唯一需要做的是:
var aFabricObject = <create your fabric object>
aFabricObject.on('deselected', function (options) {
// your code here
});
答案 2 :(得分:0)
上answer的更新:
'deselected' 事件会触发异步方法,因此您无法立即获得 'options.deselected'。
var aFabricObject = <create your fabric object>
aFabricObject.on('deselected', function (options) {
console.log(options.deselected) // output undefined
setTimeout(() => {
console.log(options.deselected) // output the correct target
}, 0)
});