Question

Est-il possible d'obtenir une liste des auditeurs inscrits pour un EventDispatcher?

Je sais que EventDispatcher a la méthode hasEventListener pour vous dire si des écouteurs sont enregistrés, mais est-il un moyen facile d'interroger le EventDispatcher pour savoir ce que les auditeurs sont?

Une façon je me suis dit de le faire était de sous-classe EventDispatcher pour remplacer la méthode addEventListener et stocker les auditeurs dans un dictionnaire, mais cela se sent maladroit pour moi.

Toutes les idées?

Était-ce utile?

La solution

Ok, donc il semble qu'il n'y ait pas de réponse à cette question autre que mon idée originale de stocker les auditeurs dans un dictionnaire et les supprimer explicitement. Eh bien ...

Quelques réflexions intéressantes sur la système subtilités AS3 des événements se trouve ici .

Autres conseils

Il ne ressemble pas à cela est une solution complète, mais il pourrait vous aider sur votre chemin:

http: // www.rialvalue.com/blog/2009/09/08/does-an-eventdispatcher-have-subscribed-listeners/

De l'article:

  

L'exemple ci-dessus montre comment nous pouvons obtenir   une référence aux différents auditeurs   a déclaré dans un EventDispatcher et comment   de les enlever sans avoir directement   référence (et connaître le nom de l'événement   arggg).

     

Même si cela peut vous aider à   savoir si un EventDispatcher   auditeurs ou non sont encore   plusieurs problèmes que vous pouvez trouver:

* You don’t have any information about the listener
* You don’t know which event the listener is listening to
* We don’t know which phase the listener is listening to
* Haven’t done too much testing around this, but I think both weak and strong references are hold in the list
* The other thing to consider is that flash.sampler.getMemberNames only works in the debugger version of the Flash Player
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top