Skip to content
hoge1e3 edited this page Nov 29, 2017 · 9 revisions

registerEventHandler / EventMod

EventHandlerクラス

Tonyu外部からの(JavaScript関連の)イベントに対応するイベントハンドラを自作する場合に、このクラスを継承してください。

フィールド

  • target
    • このイベントハンドラが処理するイベントの送付先となるオブジェクトです。
    • registerEventHandlerメソッドが呼び出されたオブジェクトを指します。

メソッド

以下のメソッドをオーバーライドしてください。

ここで登場する、eventTyperegisterEventHandlerでこのイベントハンドラを登録したときの第一引数を指します

  • 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

extends EventHandler;
native setInterval;
native clearInterval;

\addListener(d, f) {
    var t=setInterval(f, d);
    return {
        remove: \{
            clearInterval(t);
        }
    };
}

MyActor

registerEventHandler("intervalMsec", new IntervalEventHandler);
on("intervalMsec",500) \{
    x+=10;
};

.

Clone this wiki locally