2009-09-21 26 views
9

EventDispatcher için kayıtlı dinleyicilerin bir listesini alma yolu var mı?Flash AS3 EventDispatcher - kayıtlı dinleyicilerin listesini almanın herhangi bir yolu?

EventDispatcher'un herhangi bir dinleyicinin kayıtlı olup olmadığını anlatacak hasEventListener yöntemine sahip olduğunu biliyorum, ancak dinleyicilerin ne olduğunu bulmak için EventDispatcher'i sorgulamanın kolay bir yolu var mı?

Bunu yapmanın bir yolu, addEventListener yöntemini geçersiz kılmak ve dinleyicileri bir sözlükte saklamak için EventDispatcher'yi alt sınıflara ayırmaktı, ancak bu bana rahatsızlık veriyor.

Herhangi bir fikir?

+0

muhtemelen bir şey için özlem duyuyoruz ama bahsettiğiniz çözüm şimdiye kadar tek kişi gibi görünüyor ... –

cevap

1

Bu gibi görünmüyor komple bir çözümdür ancak yolda size yardımcı olabilir: makale itibaren

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

:

Yukarıdaki örnek nasıl yapabiliriz gösterir bir EventDispatcher'a bildirilen farklı dinleyici bir başvuru olsun ve nasıl doğrudan referansı olan (ve etkinlik adınıbilmeden bunları kaldırmak içinarggg).

bu EventDispatcher bulabilceğini hala oradalar çok sorun dinleyicisi olup olmadığını rakama size yardımcı olabilir rağmen: olduğu görülmektedir, böylece

* 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

Bu yardımcı oldu, ama gerçekten benim sorunumu çözmez - eğer sadece çalışır Oyuncunun hata ayıklayıcı sürümü Herhangi bir gerçek dünya uygulaması için kullanamam ... – Reuben