这是一个让我头痛了两个小时才解决的问题。我决定在这里发布它,以帮助其他人不要抓狂 :)。
基本上,问题是我在我的Flash Builder环境中没有接收到键盘事件(相同的错误/问题在Adobe Flash CS5中也可见)。我设置了stage.focus = stage,但没有帮助。我添加了其他事件侦听器(mouse_down、frame_enter),它们工作得很好,我添加了MovieClip子项并在这些子项上侦听事件,但仍然存在同样的问题。
基本上,问题是我在我的Flash Builder环境中没有接收到键盘事件(相同的错误/问题在Adobe Flash CS5中也可见)。我设置了stage.focus = stage,但没有帮助。我添加了其他事件侦听器(mouse_down、frame_enter),它们工作得很好,我添加了MovieClip子项并在这些子项上侦听事件,但仍然存在同样的问题。
package
{
public class Test extends Sprite
{
public function Test()
{
this.addEventListener(Event.ADDED_TO_STAGE,init);
}
public function init(stage:Stage):void
{
this.removeEventListener(Event.ADDED_TO_STAGE,init);
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, keyReleased);
}
private function keyPressed(e:KeyboardEvent):void
{
trace("keyPressed");
}
private function keyReleased(e:KeyboardEvent):void
{
trace("keyReleased");
}
}
}