コマンド マップ用に新しいシグナル クラスを作成する必要はありません。「dataType」クラスに type プロパティを与えるだけで、それに対して a を実行できますswitch
。しかし、それはコマンドにとって厄介です。ただし、コマンドは基本的にアプリケーション全体のアクションをトリガーするためのものです。
すべてのシグナルがアプリケーション全体のアクションをトリガーするわけではありません。
たとえば、単一のView
. Signal
関連する「ビュー イベント」 (たとえば) のクラスを作成し、タイプ プロパティを与えることMyButtonSignal
をお勧めします。MyButtonView
私の典型的な信号は次のようになります。
package {
public class MyButtonSignal extends Signal {
public static const CLICK:String = 'myButtonClick';
public static const OVER:String = 'myButtonOver';
public function MyButtonSignal() {
super(String, Object);
}
}
}
こんな感じで発送
myButtonSignal.dispatch(MyButtonSignal.CLICK, {name:'exit'});
通常どおり聞く:
myButtonSignal.add(doMyButtonSignal);
シグナルを次のように処理します。
protected function doMyButtonSignal(type:String, params:Object):void {
switch(type) {
case MyButtonSignal.CLICK: trace('click', params.name);
break;
case MyButtonSignal.OVER: trace('OVER', params.name);
break;
}
}
data
変数に独自のデータ クラスを与えると便利な場合があります。
したがって、「ああ、別のイベントに反応する必要がある」と気付くたびに、 に移動してSignal
、イベントを表す新しい static const を追加するだけです。Event
オブジェクトを使用するときに行ったのと同じように (おそらく?) 。