按键不触发KeyboardEvent

时间:2011-07-08 05:49:39

标签: actionscript-3

我正在开始一个简单的乒乓球游戏,我创建了一个没有做任何事情的Paddle类。但是,我认为它不起作用。

package  
{
    import flash.display.MovieClip;
    import flash.events.KeyboardEvent;
    public class Paddle extends MovieClip
    {
            private var paddleSpeed:int = 4;

            public function Paddle() 
            {
                trace("hello!")
                addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
            }

            public function keyDown(e:KeyboardEvent):void
            {
                trace(e.keyCode);
            }

    }

}

在Main.as中我做到了:

var player:Paddle = new Paddle;
addChild(player);

当我运行代码时,我得到你好!但是当我按任意键时没有任何反应。我已经阅读了KeyboardEvent教程,我正在做他们正在做的事情。谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

KeyboardEvent.KEY_DOWN焦点触发。空剪辑无法清晰对焦。

适合您情况的方式是订阅舞台。

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);

答案 1 :(得分:2)

尝试将事件监听器添加到stage而不是Paddle。此外,当您测试项目时,请确保禁用键盘快捷键。

enter image description here

我实际上通常做的是使用Keyboard函数创建一个down()类,我可以在整个应用程序中引用它。它的用途是这样的:

if(Keyboard.down(65, 67))
{
    trace("A and/or C are being held down!");
}