Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 (Actionscript 3.0)如何修复此箭头控件故障?_Actionscript 3 - Fatal编程技术网

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

Actionscript 3 (Actionscript 3.0)如何修复此箭头控件故障?,actionscript-3,Actionscript 3,目前,我正在尝试制作一个游戏,但我遇到了几个问题。 其中之一是我必须单击屏幕,箭头控件才能工作。有没有办法解决这个问题 其次,箭头键可以按预期工作,但WASD键不能。为什么呢 private function key_down(event:KeyboardEvent): void{ if(event.keyCode == Keyboard.LEFT || event.keyCode == 65){ leftPressed=true; }

目前,我正在尝试制作一个游戏,但我遇到了几个问题。 其中之一是我必须单击屏幕,箭头控件才能工作。有没有办法解决这个问题

其次,箭头键可以按预期工作,但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、righpressed、downppressed和upPressed为true或false时,播放器的移动方式

这是一个非常简化的代码版本,您应该直接在.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”键。这应该适用于您的系统

焦点:您需要在加载时在HTML页面中聚焦Flash对象:键:您需要使用event.charCode而不是event.keyCode您的代码在WASD和event.keyCode中非常适合我。显然,keyboardEvent监听器必须以舞台为目标。你能更具体地谈谈你的问题吗?显然,只有在我的电脑上,WASD键才不起作用。当我尝试在其他计算机上玩这个游戏时,WASD键工作得非常好。真奇怪,真奇怪。提示:使用键盘。A而不是65,它使以后阅读代码更容易。