2011-04-05 6 views
0

私は現在何も拡張していないカスタムクラスを持っています(それはデータベース上で特定のタイプのクエリを実行するためです)親クラスへのイベント。ただし、addEventListenerは定義されていません。ネイティブメソッドとして持っていないものにイベントリスナーを追加する適切な方法

メインフラッシュクラスの多くがEventDispatcherを拡張していることに気付きました。それで他に何もない場合はどうすればいいですか?ほかのクラスと通信しなければならないクラスは、EventDispatcherを拡張するだけですか?

答えて

3

あなたができることはいくつかありますが、あなたは間違いなくイベントの使用に限定されていません。イベントは、コードを切り離し、多くのオブジェクトがリスニングしている人からのイベントをディスパッチするオブジェクトや、何をしているのかを問わず、単一のイベントに作用することができるので、いいです。イベントをディスパッチする場合は、EventDispatcherを拡張するか、オブジェクトのプロパティとしてイベントをディスパッチします。

また、オブジェクトは別のオブジェクトへの参照を保持し、そのメソッドを明示的に呼び出すことができます(一部の場合は、別のクラスを既に拡張している場合はプロパティとして定義する必要があります)。この場合、EventDispatcherを拡張する必要はありませんが、通信する他のすべてのオブジェクトへの参照を格納する必要があります。

どちらのソリューションも同じ最終結果を達成しますが、それは状況や好みになります。

私は役立つことを願っています。

+0

また、EventDispatcher以外のクラスでイベントを使用できるAS3 Signalsもチェックアウトしてください。同じ構文を使用しており、より便利で高速になるという利点があります:https://github.com/robertpenner/as3-signals – divillysausages

関連する問題