長い事触ってなくて忘れてたけど、AsBroadcasterクラス使うと、カスタムクラスでMovieClipクラスのonEnterFrameとかStageクラスのonResizeとかみたいに、独自のタイミングでイベント発行できるようになるね。便利だね。
言いながらまた使い方忘れるとしゃれにならんのでメモ。
- まずAsBroadcasterクラスインポート。
import AsBroadcaster;
- AsBroadcaster.initialize(target)でtargetにbroadcastMessageと、addListenerとremoveListener実装してくれる。普通はコンストラクタでAsBroadcaster.initialize(this)する。
- コンパイルする時にそんなメソッドないって怒られるからカスタムクラス内でbroadcastMessage、addListener、removeListenerを予めプロパティ宣言のとこで予約しとく。
private var broadcastMessage:Function;
public var addListener:Function;
public var removeListener:Function;みたいな感じ。
- あとは好きなタイミングでbroadcastMessage(“イベント名”)すればaddListenerしたオブジェクトにイベント名で指定したイベントが通知される。
EventDispatcherがもうちょっと便利だったような気配がするけどこっちはサッパリ忘れたからまた調べとく。