EventHandler - hoge1e3/Tonyu2 GitHub Wiki
registerEventHandler / EventMod
EventHandlerクラス
Tonyu外部からの(JavaScript関連の)イベントに対応するイベントハンドラを自作する場合に、このクラスを継承してください。
フィールド
- target
- このイベントハンドラが処理するイベントの送付先となるオブジェクトです。
- registerEventHandlerメソッドが呼び出されたオブジェクトを指します。
メソッド
継承したクラスは,newListenerメソッドをオーバーライドしてください.
newListenerメソッドの仕様
targetで示さるオブジェクトに on(eventType,...) または waitEvent(eventType,...)が呼び出された時に呼び出されます。- ここで登場する、
eventTypeはregisterEventHandlerでこのイベントハンドラを登録したときの第一引数を指します
- ここで登場する、
- onが呼び出された場合、onに渡された引数の第2引数以降が引数に渡されます
- waitEventが呼び出された場合、waitEventに渡された引数の第2引数以降に、関数オブジェクトを1つ加えたものが引数に渡されます。この関数オブジェクトは、waitEventを呼び出した側に処理を再開させる際に呼び出してください。この呼出の第1引数がwaitEventの戻り値になります。
- 戻り値には、オブジェクトを返してください。これをlistenerオブジェクトと呼びます.
listenerオブジェクトの仕様
次の属性に関数を指定できます.
- action
- sentEvent/ fireEvent によってイベントが発生したときの処理を記述します.省略した場合は,newListenerの最後の引数が指定されます.
- dispose
- このonの呼出によって設定されたイベント処理を無効にする処理を記述します。
- 1つのオブジェクトを引数に渡して呼ばれます.オブジェクトには次の属性を含みます
listenerlistenerオブジェクトlastこのdisposeの呼び出しをもってすべてのイベント処理が削除される場合はtrue
例
IntervalEventHandler
extends EventHandler;
native setInterval;
native clearInterval;
\newListener(d, f) {
var t=setInterval(f, d);
return {
dispose: \{
clearInterval(t);
}
};
}
Main
x=100;y=100;
registerEventHandler("intervalMsec", new IntervalEventHandler);
on("intervalMsec",500) \{
x+=10;
};
.