2014-06-23 105 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