registerEventHandler / EventMod
EventHandlerクラス
特定のイベントタイプに対応するイベントハンドラを自作する場合に、このクラスを継承してください。
フィールド
メソッド
以下のメソッドをオーバーライドしてください。
ここで登場する、eventType
はregisterEventHandlerでこのイベントハンドラを登録したときの第一引数を指します
- addListenerメソッド
-
target
で示さるオブジェクトに on(eventType
,...) または waitEvent(eventType
,...)が呼び出された時に呼び出されます。
- onが呼び出された場合、onに渡された引数の第2引数以降が引数に渡されます
- waitEventが呼び出された場合、waitEventに渡された引数の第2引数以降に、関数オブジェクトを1つ加えたものが引数に渡されます。この関数オブジェクトは、waitEventを呼び出した側に処理を再開させる際に呼び出してください。この呼出の第1引数がwaitEventの戻り値になります。
- 戻り値には、removeという名前の関数オブジェクトを含むオブジェクトを返してください。この関数オブジェクトには、このonの呼出によって設定されたイベント処理を無効にする処理を記述します。
- fireメソッド
-
target
で示さるオブジェクトに sendEvent(eventType
,...)が呼び出された時に呼び出されます。sendEventの第2引数以降が渡されます。
- sendEvent(
eventType
,...)が呼ばれないようなイベントの場合、オーバーライドの必要はありません。(下の例参照)
例
IntervalEventHandler.tonyu
extends EventHandler;
native setInterval;
native clearInterval;
\addListener(d, f) {
var t=setInterval(f, d);
return {
remove: \{
clearInterval(t);
}
};
}
MyActor.tonyu
registerEventHandler("intervalMsec", new IntervalEventHandler);
on("intervalMsec",500) \{
x+=10;
};
.