クラスで関数をさらに定義しているにもかかわらず、スターを付けた行の次のコードから、未定義のプロパティへのアクセスエラーが発生します。
package {
import flash.display.Stage;
import flash.events.Event;
import flash.events.KeyboardEvent;
public class Key{
private static var initialized:Boolean = false;
private static var keysDown:Object = new Object();
private function initialize(stage:Stage){
if(!initialized){
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
**stage.addEventListener(Event.DEACTIVATE, clearKeys);**
initialized = true;
}
}
public static function isDown(keyCode:uint):Boolean {
return Boolean(keyCode in keysDown);
}
Private static function keyPressed(event:KeyboardEvent):void {
keysDown[event.keyCode] = true;
}
private static function keyReleased(event:KeyboardEvent):void{
if(event.keyCode in keysDown){
delete keysDown[event.keyCode];
}
}
Private static function clearkeys(event:Event):void{
keysDown = new Object():
}
}
}
編集:キャップエラーを修正した後、新しいエラーがポップアップします(ありがとうジェイソン)。誰かがこれを手伝ってくれますか?