TK Event Engine F5 v1.35
Another event engine for ActionScript

Download the source fla

概要

== イベントエンジンとは ==

ソースfla内のステージに置かれているカラのMC "eventEngine"、これがTK Event Engineのエンジンになります。

movieclipの各種イベントハンドラー、つまり onClipEvent(enterFrame), onClipEvent(mouseDown) 等は、システムイベント又は何らかのユーザイベントに反応してそのハンドラーで指定された動作を 行うものですが、イベントエンジンはそのonClipEventを、各movieclipには何も書かずに、 ムービーを通して一つのmovieclip(eventEngine)に一手に引き受けさせるというものです。 つまり、全てのコードを_root若しくは#includeするasファイルに書く、といったことを可能にします。

利点として、

・コードとアートワークの完全分離が出来るので、コードをあちこち探す必要がなくなり、又アートワークの入れ替え等が簡単に行える
・又それによって、コードの再利用がしやすくなる。
・従来attachMovieしたムービークリップには、onClipEventが書けなかったが、 イベントエンジンを使えば、あたかもそれにonClipEventを書くが如く動作させることが出来る。
・仮想イベントに反応するグループを組むことができる。

等々が挙げられます。

== イベントリスナーとは ==

イベントエンジンには、このイベントが起きたらこのMCやあのオブジェクトにあれこれ動作をさせる、ということをいくつか 「登録」する事になりますが、その登録されたMCやオブジェクト経由メソッドまでのパスとそのメソッドに渡す引数のオブジェクトのペアをここではイベントリスナーと 呼ぶことにします。

シンタックス

== イベントリスナーの登録 ==

eventEngine.subscribe(sEvent, sPathToMethod, oArgs);

== イベントリスナーの登録解除 ==

eventEngine.remove(sEvent, sPathToMethod);

== 引数について ==

sEvent の例 :

"enterFrame"

sPathToMethod の例:

"_root.myMC.myFunc"

これはそのMCやオブジェクトのメソッドへの絶対パスの文字列である必要があります。
そのためにはMovieClipのメソッド、targetPath()がしばしば役に立ちます。特にMC名に変数を使用している場合などに効果的です。

例:targetPath(this) + ".myFunc"

oArgs の例 :

{num: 5, str: "hello"}

これはその登録メソッド(myFunc)に渡す、引数名/その値、のペアを並べたオブジェクトです。そのメソッドを定義する際、引数をオブジェクト一つのみにしておく必要があります。

使用例

_root.myObj.myFuncを引数{num: 5, str: "hello"}とともにenterFrameに登録

eventEngine.subscribe("enterFrame", "_root.myObj.myFunc", {num: 5, str: "hello"});

_root.myObj.myFuncをenterFrameから登録解除

eventEngine.remove("enterFrame", "_root.myObj.myFunc");

enterFrameに登録されている全てのリスナーの登録を解除

delete eventEngine.enterFrame;

手動でmouseDownに登録されているリスナーを実行

eventEngine.mouseDown.execute();

_root.textFieldMC1.clearを仮想イベント"allClear"に引数無しで登録

eventEngine.subscribe("allClear", "_root.textfieldMC1.clear");

仮想イベント"allClear"を発生させる

eventEngine.allClear.execute();

clipEventEngine と buttonEventEngine

TK Event Engine F5 v1.35 では、従来の TK Event Engine (デフォルトではclip eventのみサポート) に buttonEventEngine も追加されました。buttonEventEngine は Flash MX で可能になった、movieclipにボタンイベントメソッドを定義することを Flash 5 上で可能にします。シンタックスは MX でのものと全く同じです。つまり、MX 用に書かれたコードにボタンイベントメソッドが含まれていてそれを Flash 5 でパブリッシュしたいときなどに重宝します。

clipEventEngine.as, buttonEventEngine.as の両方が #include されるようになっていますが、いずれか一方のみを #include して使用することも可能です。


Demonstration swf


Back to Flash Home

©2000-2002 STUDIO FIRST RAYS. All rights reserved