2
出於某種原因,我不能添加事件偵聽器..我已經搜索了錯誤,但人們說這是由於有一個函數外的addEventListener。不過我的是在構造函數裏面!調用可能未定義的方法addEventListener
package {
import flash.events.*;
public class keyClass {
var keyArray:Array = new Array ;
public function keyClass() {
for (var i = 0; i < 999; i++) {
keyArray[i] = false;
}
addEventListener(KeyboardEvent.KEY_DOWN,onKyDwn);
addEventListener(KeyboardEvent.KEY_UP,onKyUp);
}
public function onKyDwn(e:KeyboardEvent) {
keyArray[e.keyCode] = true;
}
public function onKyUp(e:KeyboardEvent) {
keyArray[e.keyCode] = false;
}
}
}
Uhm,IEventDispatcher對我來說工作得很好。爲什麼你的觀點不能實現? – Bakapii
然後,要麼你知道一個我不知道的技巧,或者你不必使用自定義IEventDispatcher事件的目標。根據[Robert Penner](http://flashblog.robertpenner.com/2009/09/my-critique-of-as3-events-part-2.html),AS3 Signals的創建者,不可能從外部設置事件的目標。它只能由EventDispatcher類本身完成。 –
當然你可以實現'IEventDispatcher',只是[代理調用'EventDispatcher'](http://active.tutsplus.com/tutorials/actionscript/as3-101-quick-tip-dispatching-events-without-extending -eventdispatcher /)。如果你需要擴展一個不會擴展'EventDispatcher'的類,這是很有幫助的(Adobe另外一個原因應該是讓事件成爲一個完整的語言特性......)* –