2009-09-21 23 views
9

Czy istnieje sposób na uzyskanie listy zarejestrowanych słuchaczy dla numeru EventDispatcher?Flash AS3 EventDispatcher - jak uzyskać listę zarejestrowanych słuchaczy?

wiem, że EventDispatcher ma metodę hasEventListener powiedzieć, czy jakiekolwiek detektory są zarejestrowane, ale tam jest łatwym sposobem odpytywania EventDispatcher aby dowiedzieć się, jakie są słuchacze?

Jednym ze sposobów, w jaki to zrobiłem, było podklasy EventDispatcher zastąpić metodę addEventListener i przechowywać słuchaczy w słowniku, ale to wydaje mi się przyblokowane.

Wszelkie pomysły?

+0

również tęskniłem za czymś prawdopodobnie, ale rozwiązanie, o którym wspomniałeś, wydaje się być jedyną do tej pory ... –

Odpowiedz

1

To nie wygląda to kompletne rozwiązanie, ale może pomóc Ci na drodze:

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

Z artykułu:

Powyższy przykład pokazuje, jak możemy uzyskać odniesienie do różnych odbiorców zadeklarowane w EventDispatcher i jak usunąć je bez bezpośredniego odniesienia (i znając nazwę zdarzenia arggg).

Chociaż to może pomóc dowiedzieć się, jeśli EventDispatcher zawiera słuchaczy lub nie istnieje wciąż kilka problemów można znaleźć:

* 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 
+1

To było pomocne, ale tak naprawdę to nie rozwiązuje mojego problemu - jeśli działa tylko w wersja debuggera odtwarzacza Nie mogę go używać do żadnych aplikacji w świecie rzeczywistym ... – Reuben

Powiązane problemy