Skip to content

EventHandler

hoge1e3 edited this page Jun 6, 2019 · 8 revisions

registerEventHandler / EventMod

EventHandlerクラス

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

フィールド

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

メソッド

継承したクラスは,newListenerメソッドをオーバーライドしてください.

newListenerメソッドの仕様

  • targetで示さるオブジェクトに on(eventType,...) または waitEvent(eventType,...)が呼び出された時に呼び出されます。
    • ここで登場する、eventTyperegisterEventHandlerでこのイベントハンドラを登録したときの第一引数を指します
  • onが呼び出された場合、onに渡された引数の第2引数以降が引数に渡されます
  • waitEventが呼び出された場合、waitEventに渡された引数の第2引数以降に、関数オブジェクトを1つ加えたものが引数に渡されます。この関数オブジェクトは、waitEventを呼び出した側に処理を再開させる際に呼び出してください。この呼出の第1引数がwaitEventの戻り値になります。
  • 戻り値には、オブジェクトを返してください。これをlistenerオブジェクトと呼びます.

listenerオブジェクトの仕様

次の属性に関数を指定できます.

  • action
    • sentEvent/ fireEvent によってイベントが発生したときの処理を記述します.省略した場合は,newListenerの最後の引数が指定されます.
  • dispose
    • このonの呼出によって設定されたイベント処理を無効にする処理を記述します。
    • 1つのオブジェクトを引数に渡して呼ばれます.オブジェクトには次の属性を含みます
      • listener listenerオブジェクト
      • last このdisposeの呼び出しをもってすべてのイベント処理が削除される場合はtrue

IntervalEventHandler

extends EventHandler;
native setInterval;
native clearInterval;

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

MyActor

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

.

Backlink

Clone this wiki locally
You can’t perform that action at this time.