Actionscript 3 Actionscript 3.0:无法获取密钥输入
伙计们。我创造了一个小游戏。我想,实际上什么也没发生,因为我没有得到键盘输入。我花了一些时间尝试创建自己的taht,但没有成功。然后我复制/粘贴了官方ActionScript3.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
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是所有事物的父级)。