(Actionscript 3.0)如何修复此箭头控制故障?

时间:2017-01-22 05:50:01

标签: actionscript-3

目前,我正在尝试制作游戏,但我遇到了一些问题。 其中之一就是我必须单击屏幕才能使箭头控件生效。反正有没有解决这个问题?

其次,箭头键按预期工作,但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,玩家如何移动。

1 个答案:

答案 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'键。这应该适用于您的系统。