Question

D'abord peu sur la façon dont fonctionne mon site: Lorsqu'un lien est cliqué, il vérifie si quelque chose est déjà affichée soit à gauche ou à droite de l'écran (le site ressemble à un livre, donc j'ai une page gauche, je veux afficher des informations sur une page et à droite). S'il y a déjà quelque chose montrant qu'il cache et affiche le nouvel objet, en même temps que cela, il permet à tous les boutons dans cet objet (je fonctions distinctes pour configurer chaque objet).

Un exemple d'un tel EventListener serait:

pathTo.Button1.addEventListener(MouseEvent.CLICK, function():void {showText(side, object)});

Ce que je suis en train de faire est de supprimer tous les EventListeners précédents ensemble sans avoir à créer des fonctions distinctes pour supprimer les liens à l'intérieur chaque objet aussi bien.

Version Shorter: Comment puis-je supprimer tous les EventListeners sur tous les objets dans un autre objet? La seule variable que je veux magasin est l'objet contenant tout. Il n'y a cependant pas toujours EventListeners dans les objets.

Était-ce utile?

La solution

Oui, il est possible et la solution est ici: http://blog.andregil.net/2010/01/how-to-remove-event-listeners-with-parameters-closure/

Vous pouvez utiliser cet extrait sur la fonction d'écouteur, pour le faire enlever l'auditeur de lui-même:

event.currentTarget.removeEventListener(event.type, arguments.callee);

;)

Autres conseils

vous pouvez vérifier des écouteurs d'événement existant en utilisant

hasEventListener(Event.TYPE)

et vous pouvez supprimer les écouteurs d'événement en utilisant

removeEventListener(Event.TYPE, listenerFunc)

Notez que vous devez avoir une référence au listenerFunc pour enlever l'écouteur d'événement.

Vous pourriez faire un peu ragréage singe sur le framework Flex pour inclure cette fonctionnalité.

Doug McCune décrit comment faire cela dans cette entrée de blog .

Edit: Misread votre question un peu. Comme décrit cela ne fonctionne que pour les composants Flex. Je ne sais pas si vous pouvez utiliser la même méthode pour les composants généraux Flash. Désolé.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top