Supprimer plusieurs Objets à la fois sur un fabric.js canvas en html5
Je travaille actuellement sur un html5 canvas projet qui utilise le fabric.js Cadre pour la toile interactions. Maintenant, je suis struggeling avec la suppression de plusieurs objets. Le code suivant ne semble pas suivre les objets sélectionnés, mais les pistes de tous les objets sur la toile.
var deleteSelectedObject = document.getElementById('delete-item');
deleteSelectedObject.onclick = function(){
var curSelectedObjects = new Array();
curSelectedObjects = canvas.getObjects(canvas.getActiveGroup);
canvas.discardActiveGroup();
for (var i = 0; i < curSelectedObjects.length; i++){
canvas.setActiveObject(curSelectedObjects[i]);
canvas.remove(canvas.getActiveObject());
}
};
N'obtenez pas de mon échec.
- Juste une remarque: n'utilisez pas de
var curSelectedObjects = new Array();
nouveau Tableau, il suffit d'utiliser[]
. Surtout dans ce cas, où vous n'avez pas affaire à un tableau, mais une liste de noeud (!== la même chose) - Êtes-vous essayer de supprimer un groupe d'objets?
- oui, thatÄs exactement ce que je suis en train de faire. Toutes les suggestions?
canvas.getActiveGroup().forEachObject(function(o){ canvas.remove(o) }); canvas.discardActiveGroup().renderAll();
Vous devez vous connecter pour publier un commentaire.
En raison de @Kangax commentaire qui a résolu le problème, j'ai trouvé la solution suivante pour supprimer des objets de la sélection courante de la toile.
La fonction vérifie si un groupe est sélectionné. Si un groupe est sélectionné chaque objet du groupe est supprimé.
Si aucun groupe n'est sélectionné, la fonction essaie de supprimer un objet sélectionné. Si rien n'est sélectionné, la toile n'est pas modifié.
Votre code semble que c'est la sélection puis désélectionner les objets.
Cela peut fonctionner mieux:
Bonne information lien:
https://github.com/kangax/fabric.js/wiki/Tutorial-2#wiki-modifying-objects
Vous pouvez vérifier tout de propriété de l'objet et peut supprimer
J'ai fait ceci:
me rendre le tableau des objets sélectionnés. 🙂
la dernière fonction paranthesis est manquant dans votre extrait de code
Aucune des solutions ci-dessus (ou n'importe où elese sur stackoverflow) a travaillé pour moi, sauf pour ce seul solution que j'ai trouvé sur jsfiddle:
http://jsfiddle.net/beewayne/z0qn35Lo/