目前,我正在尝试制作游戏,但我遇到了一些问题。 其中之一就是我必须单击屏幕才能使箭头控件生效。反正有没有解决这个问题?
其次,箭头键按预期工作,但WASD键不能。那是为什么?
private function key_down(event:KeyboardEvent): void{
if(event.keyCode == Keyboard.LEFT || event.keyCode == 65){
leftPressed=true;
}
if(event.keyCode == Keyboard.RIGHT || event.keyCode == 68){
rightPressed=true;
}
if(event.keyCode == Keyboard.UP || event.keyCode == 87){
upPressed=true;
}
if(event.keyCode == Keyboard.DOWN || event.keyCode == 83){
downPressed=true;
}
}
private function key_up(event:KeyboardEvent): void{
if(event.keyCode == Keyboard.LEFT || event.keyCode == 65){
leftPressed=false;
}
if(event.keyCode == Keyboard.RIGHT || event.keyCode == 68){
rightPressed=false;
}
if(event.keyCode == Keyboard.UP || event.keyCode == 87){
upPressed=false;
}
if(event.keyCode == Keyboard.DOWN || event.keyCode == 83){
downPressed=false;
}
}
注意:在代码的另一部分,我定义了如果leftPressed,rightPressed,downPressed和upPressed为true或false,玩家如何移动。
答案 0 :(得分:2)
这是您的代码的一个非常简化的版本,您应该直接在.fla文件中进行测试:
stage.addEventListener(KeyboardEvent.KEY_DOWN, keydown);
var leftPressed:Boolean;
function keydown(event:KeyboardEvent): void
{
//if(event.keyCode == Keyboard.LEFT || event.keyCode == 65)
if(event.keyCode == 65)
{
leftPressed=true;
trace('left Pressed');
}
}
请注意,我已经注释掉了Keyboard.LEFT行并将其替换为一行 只测试'a'键。这应该适用于您的系统。