2014-06-23 1 views
3

J'essaye d'exécuter du code chaque fois qu'un objet de fabric spécifique est "désélectionné". Y a-t-il un événement de désélection que je peux gérer? J'ai déjà une fonction pour quand l'objet est sélectionné, via l'événement sélectionné, mais je n'ai trouvé aucune documentation sur l'objet désélectionné. Au niveau de la toile, j'ai la sélection: cleared et selection: les événements créés, mais rien pour la désélection non plus.Deselection fabric.js object event

Cheers, Gonzalo

Répondre

11

Utilisez l'événement before:selection:cleared et obtenir l'objet actif ou d'un groupe. Après cela, vous pouvez vérifier si elle correspond à votre objet de tissu spécifique.

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

Il ya une petite erreur dans la ligne 3, le crochet de fermeture doit être après l'appel .getActiveObject(). De plus, il manque un ")" dans la dernière ligne. – Moritur

1

Juste pour vous le savez tous que les nouvelles versions de Fabric.js comprennent un événement deselected pour le Object class. La seule chose que vous devez faire maintenant est:

var aFabricObject = <create your fabric object> 

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

Ceci est également mentionné dans le document mais de toute façon il ne se déclenche pas lorsque l'objet est désélectionné! – theHarsh