== イベントエンジンとは ==
ソースfla内のステージに置かれているカラのMC "eventEngine"、これがTK
Event Engineのエンジンになります。
movieclipの各種イベントハンドラー、つまり onClipEvent(enterFrame), onClipEvent(mouseDown)
等は、システムイベント又は何らかのユーザイベントに反応してそのハンドラーで指定された動作を 行うものですが、イベントエンジンはそのonClipEventを、各movieclipには何も書かずに、
ムービーを通して一つのmovieclip(eventEngine)に一手に引き受けさせるというものです。 つまり、全てのコードを_root若しくは#includeするasファイルに書く、といったことを可能にします。
利点として、
・コードとアートワークの完全分離が出来るので、コードをあちこち探す必要がなくなり、又アートワークの入れ替え等が簡単に行える
・又それによって、コードの再利用がしやすくなる。
・従来attachMovieしたムービークリップには、onClipEventが書けなかったが、 イベントエンジンを使えば、あたかもそれにonClipEventを書くが如く動作させることが出来る。
・仮想イベントに反応するグループを組むことができる。
等々が挙げられます。
== イベントリスナーとは ==
イベントエンジンには、このイベントが起きたらこのMCやあのオブジェクトにあれこれ動作をさせる、ということをいくつか
「登録」する事になりますが、その登録されたMCやオブジェクト経由メソッドまでのパスとそのメソッドに渡す引数のオブジェクトのペアをここではイベントリスナーと
呼ぶことにします。
_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();