« イベントを間接的に通知する EventMediator クラス | メイン | Progression に触れてみる2 »

2008年3月28日

[as2] AS2でAS3のEventDispatcher

AS3の EventDispatcher クラスをAS2でも使えるようにと思って作ったクラスです。

EventDispatcher クラス
Event クラス

サンプル用 fla ファイル
demo.fla
demo2.fla

willTriggerメソッドが、どうやって実装するか悩んだ(willTriggerの挙動自体いまいち把握してない)のでとりあえずほったらかしてます。

あと、mx.events.EventDispatcherを継承してますが、中身はまったく別物です。
ムービークリップに適応した場合、イベント通知がルートからたどっていくようになってます。(微妙ですが)

で、AS3的に「addEventListener("enterFrame", handler )」とかやりたいところですが、
元々AS2のMovieClipにそんな機能は実装されてないので、前のエントリーで書いた EventMediator クラスを使います。

こんな感じです。
import flash.events.EventDispatcher;
import flash.events.Event;

import com.seyself.events.EnterFrameBeacon;
import com.seyself.events.EventMediator;

EventDispatcher.initialize( MovieClip.prototype );

var madiator:EventMediator = new EventMediator( new EnterFrameBeacon() );

madiator.addEventListener( "enterFrame" , null );
madiator.member = [mc];   // ステージ上に配置してあるムービークリップ

mc.addEventListener( "enterFrame" , enterFrameHandler );
function enterFrameHandler( event:Event ):Void
{
    trace(event.target);// _level0.mc
}

EnterFrameBeaconクラスは、単純にenterFrameイベントを通知し続けるクラスです。

トラックバック(0)

このブログ記事を参照しているブログ一覧: AS2でAS3のEventDispatcher

このブログ記事に対するトラックバックURL: http://system.seyself.com/mt-tb.cgi/489

コメントする


画像の中に見える文字を入力してください。

しばらく時間が経過すると、システム内部と表示されている文字内容に食い違いが発生するようなので、
投稿する前にページをリロードすることをお勧めします。
リロードしてもフォームの内容は維持されます。