コマンドマップの新しい信号クラスを作成する必要はありません。ちょうど良い習慣です。あなたは "dataType"クラスに型のプロパティを与え、その上にswitch
を行うことができます。しかし、それはコマンドのために乱雑になるでしょう。ただし、コマンドは基本的にアプリケーション全体のアクションをトリガするためのものです。
すべての信号がアプリケーション全体の動作をトリガするわけではありません。
たとえば、単一のView
からイベントのヒープに応答している場合。関連する「イベントの表示」のためにSignal
クラスを作成して(例えば、MyButtonView
の場合はMyButtonSignal
)、タイププロパティを指定することをお勧めします。鉱山の
典型的な信号は、次のようになります。そう
myButtonSignal.dispatch(MyButtonSignal.CLICK, {name:'exit'});
よう
package {
public class MyButtonSignal extends Signal {
public static const CLICK:String = 'myButtonClick';
public static const OVER:String = 'myButtonOver';
public function MyButtonSignal() {
super(String, Object);
}
}
}
発送は通常通りに聞く:
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;
}
}
:そうのような
myButtonSignal.add(doMyButtonSignal);
ハンドル信号を
場合によっては、data
に独自のデータクラスを変えることができます。
だから、いつもあなたは "Aw shit、私は別のイベントに反応する必要がある"と気づいたら、簡単にSignal
に行き、イベントを表す新しい静的constを追加してください。おそらくあなたのようなものでしょうか?Event
のオブジェクトを使用したときはどうでしたか?