Actionscript 3 Actionscript 3.0:键盘事件和远程演示者

Actionscript 3 Actionscript 3.0:键盘事件和远程演示者,actionscript-3,flash-cs4,Actionscript 3,Flash Cs4,我有一个简单的Flash电影,代码如下。使用键盘上的箭头键从一帧移动到下一帧或返回: stop(); //listen for key press stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown); //if left or right arrow, go to previous or next frame function myKeyDown(e:KeyboardEvent):void { switch (e.keyCod

我有一个简单的Flash电影,代码如下。使用键盘上的箭头键从一帧移动到下一帧或返回:

stop();

//listen for key press
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown);

//if left or right arrow, go to previous or next frame
function myKeyDown(e:KeyboardEvent):void {

switch (e.keyCode) {
case Keyboard.LEFT :
prevFrame();
break;

case Keyboard.RIGHT :
nextFrame();
break;
}
}
所以,除了我需要使用Kensington演示器远程控制键盘之外,这一切都很好。它应该向计算机发送右箭头键或左箭头键的keydown命令,但它不起作用

它在我拥有的一个遗留Director项目上使用了类似的语法。也适用于PowerPoint


如有任何想法,将不胜感激。我正在Mac电脑上工作,但这部电影将作为编译后的应用程序在Windows和Mac平台上运行。

如果它没有抛出错误,您必须关注stage并在事件侦听器下面编写

stage.focus = this;
stage.focusRect = false;

stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyDown);


function myKeyDown(e:KeyboardEvent):void {

switch (e.keyCode) {

case Keyboard.LEFT :

this.currentFrame++;

break;

case Keyboard.RIGHT :

this.currentFrame--;

break;
}

}

当您按下遥控器上的按钮时,尝试跟踪处理程序接收到的密钥代码。建议与myKeyDown事件处理程序中的Anon.Trace e.keyCode相同。查看您是否获得了任何输出。另一个问题可能是您的应用程序正在失去焦点,从而丢失了关键事件。您可以使用计时器每隔几秒钟重新获取焦点以解决此问题。