我正在开始一个简单的乒乓球游戏,我创建了一个没有做任何事情的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教程,我正在做他们正在做的事情。谢谢你的帮助
答案 0 :(得分:2)
KeyboardEvent.KEY_DOWN
由焦点触发。空剪辑无法清晰对焦。
适合您情况的方式是订阅舞台。
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
答案 1 :(得分:2)
尝试将事件监听器添加到stage
而不是Paddle
。此外,当您测试项目时,请确保禁用键盘快捷键。
我实际上通常做的是使用Keyboard
函数创建一个down()
类,我可以在整个应用程序中引用它。它的用途是这样的:
if(Keyboard.down(65, 67))
{
trace("A and/or C are being held down!");
}