« イベントを間接的に通知する 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 クラスを使います。
こんな感じです。
EnterFrameBeaconクラスは、単純にenterFrameイベントを通知し続けるクラスです。
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

コメントする