Actionscript 3 Actionscript 3.0:无法获取密钥输入

Actionscript 3 Actionscript 3.0:无法获取密钥输入,actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,伙计们。我创造了一个小游戏。我想,实际上什么也没发生,因为我没有得到键盘输入。我花了一些时间尝试创建自己的taht,但没有成功。然后我复制/粘贴了官方ActionScript3.0参考页面上的代码,但为我的游戏进行了调整(但我没有触摸任何与键盘相关的东西)。而且我的游戏在科斯诺尔的唯一回报是错误的 import flash.ui.Keyboard; import flash.events.Event; import flash.events.KeyboardEvent; stop(); va

伙计们。我创造了一个小游戏。我想,实际上什么也没发生,因为我没有得到键盘输入。我花了一些时间尝试创建自己的taht,但没有成功。然后我复制/粘贴了官方ActionScript3.0参考页面上的代码,但为我的游戏进行了调整(但我没有触摸任何与键盘相关的东西)。而且我的游戏在科斯诺尔的唯一回报是错误的

import flash.ui.Keyboard;
import flash.events.Event;
import flash.events.KeyboardEvent;

stop();

var left = false;
var right = false;
var speed = 0.3;


player.addEventListener(KeyboardEvent.KEY_DOWN, keydF);
player.addEventListener(KeyboardEvent.KEY_UP, keyuF);
player.addEventListener(Event.ENTER_FRAME, updF);

function keydF(event:KeyboardEvent):void {
    trace("test0");
    if(event.keyCode == Keyboard.D) {
        trace("test1");
        left = true;
    }
    if(event.keyCode == Keyboard.A) {
        right = true;
    }
}

function keyuF(event:KeyboardEvent):void {
    trace("test2");
    if(event.keyCode == Keyboard.D) {
        left = false;
    }
    if(event.keyCode == Keyboard.A) {
        right = false;
    }
}

function updF(e:Event):void {
    if(left) {
        level.x -= speed;
    }

    if(right) {
        level.x += speed;
    }
    trace(left + ""); //always false :\
}

如果您想获得应用程序的密钥输入,您应该将侦听器添加到stage:)

尝试将侦听器添加到stage。这似乎运行了方法keydD和keyuF(打印出test0和test2)。但它没有访问这些方法中的if语句。我的输出如下所示。false test0 test0 false test0 test2 false false false false OK,重启整个计算机(不仅仅是闪存)似乎有帮助。谢谢!,您应该提供一个答案:DI很高兴这有帮助:)供以后发现此问题的人参考(提供一些上下文),当您将侦听器添加到播放器时,这意味着播放器对象必须具有当前焦点才能接收事件。如果应用程序本身有焦点,那么stage将调度事件,而不管实际有焦点的子级是什么(因为stage是所有事物的父级)。