ActionScript 3事件不起作用

时间:2012-12-17 06:41:14

标签: actionscript-3

我是AS的新手,并尝试制作我的第一个应用程序。我有一个类,showld管理一些事件,如键盘按键:

public class GameObjectController extends Sprite
{
    var textField:TextField;

    public function GameObjectController()
    {
        addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
    }

    private function onKeyDown(event: KeyboardEvent):void
    {
        trace("123");
    }
}

但是当我正在运行它并按下任何按钮时,没什么好笑的。我做错了什么?

2 个答案:

答案 0 :(得分:3)

stage.addEventListener() s {/ p>> KeyboardEvent

原因在于,无论您将事件添加到需要焦点,stage始终具有焦点。

如果GameObjectController不是文档类,则需要将stage解析为其构造函数才能使其生效,或者需要先将其添加到舞台中。前者实施起来不那么混乱。

public function GameObjectController(stage:Stage)
{
    stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}

答案 1 :(得分:0)

将键盘事件添加到舞台并导入KeyboardEvent类。

package
{
    import flash.display.Sprite;
    import flash.events.KeyboardEvent;

    public class GameObjectController extends Sprite
    {
        public function GameObjectController()
        {
            stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownEventHandler);
        }

        private function keyDownEventHandler(event:KeyboardEvent):void
        {
            trace(event);
        }
    }
}