2009-09-21 9 views
9

EventDispatcherの登録済みリスナーのリストを取得する方法はありますか?Flash AS3 EventDispatcher - 登録されたリスナーのリストを取得する方法はありますか?

私はEventDispatcherは、リスナーが登録されているかどうかを伝えるためにhasEventListener方法がありますが、リスナーがあるかを見つけるためにEventDispatcherを問い合わせる簡単な方法があることを知っていますか?

EventDispatcherをサブクラス化してaddEventListenerメソッドをオーバーライドしてリスナーを辞書に格納する方法がありましたが、これは私には戸惑うようです。

アイデア?

+0

も同様に憧れていますが、あなたが言及した解決策は今のところ唯一のようです。 –

答えて

3

[OK]を、ので、あるようです:のEventDispatcherは リスナーがあるかどうか、あなたが見つけるかもしれない いくつかの問題が残っている場合、これは 図アウトにあなたを助けることができるにもかかわらず

リスナーをディクショナリに格納して明示的に削除するという私のオリジナルの考え方以外のこの質問に対する答えはありません。ああ... ...

intricacies AS3 Events system can be found hereについての興味深い考えです。

1

それは完全なソリューションですが、それはあなたの方法であなたを助けるかもしれない。このようにしていません:

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

記事から:

どのように私達ができる上記の例が示します EventDispatcherで宣言されている異なるリスナーへの参照 と、 の参照なしでそれらを削除する方法については、 を参照してください(イベント名はですarggg)。

* 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

これは役に立ちましたが、実際には私の問題を解決しません。私は実際のアプリケーションのためにそれを使用することはできませんプレーヤーのデバッガのバージョン... – Reuben

関連する問題