你不必爲爲Command地圖創建一個新的信號類,它只是一個很好的練習。你可以給「dataType」類一個類型屬性 - 並做一個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
並添加一個新的靜態常量來表示事件。很像你(可能?)在使用Event
對象時所做的。