|
|
|
|
| 3-3 EventDispatcherの意義と使い方 |
|
mx.events.EventDispatcherクラスのメリットは、イベントに関する監視をaddEventListener・removeEventListenerにより、加えたりはずしたりできる点である。クラスに動的にメソッドを追加したり削除したりすることでも、これは実現可能だが、(実際、ActionScript 1.0では汎用的にこの方法を行っていた。)ここではEventDispatcherを用いる方法を説明する。イベントに対してリスナーを付加するという手法の方がC++,Javaなどと比較しても一般的なものであると考えられる。 基本的な使い方は以下のようになる。
まず、import文でmx.events.Dispatcherクラスを読み込む。リスナーを付加する対象となるオブジェクトをinitializeする。 オブジェクトに対する匿名メソッドを定義する際に、内部でリスナーオブジェクトを作成し、そのリスナーオブジェクトをdispatchEventする。(リスナーオブジェクトにはtarget,typeメンバで呼び出されるメソッドを定義する必要がある。) 呼び出されるメソッドをaddEventListenerで登録する。 EventDispatcherの対象となるオブジェクトだが、ムービークリップだけがその対象ではない。dynamicなクラスであれば、いずれのクラスもその対象となるし、非dynamicなクラスでも、以下のようなクラスは対象となり得る。
つまり、クラスがdynamicであることそのものが重要なのではない。EventDispatcher.initializeによりその対象オブジェクトに機能が付加される際、addEventListenerメソッド、removeEventListenerメソッド、dispatchEventメソッドに内容が付加されるため、これらのメソッドをあらかじめ保持させておき、オーバーライドさせれば、initializeは成功する。(dynamicな場合、メソッドの動的な追加は許されるので、これらのメソッドを保持させる必要がなかった。) |
| BACK | TOP | NEXT |
| All Contents Copyright (C) 2005 HOSHI Tetsuya |
| Home |