1

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

public class GameObjectController extends Sprite
{
    var textField:TextField;

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

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

但是当我运行它并按下任何按钮时,什么都没有发生。我究竟做错了什么?

4

2 回答 2

3

尝试s stage.addEventListener()KeyboardEvent

这样做的原因是,无论您将事件添加到什么地方,都需要关注,并且stage总是有焦点。

如果GameObjectController不是文档类,则需要stage解析到其构造函数才能使其工作,或者需要先将其添加到阶段。前者实施起来不会那么混乱。

public function GameObjectController(stage:Stage)
{
    stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
于 2012-12-17T06:46:13.207 回答
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);
        }
    }
}
于 2012-12-17T06:49:54.713 回答