我是AS的新手,并尝试制作我的第一个应用程序。我有一个类,showld管理一些事件,如键盘按键:
public class GameObjectController extends Sprite
{
var textField:TextField;
public function GameObjectController()
{
addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
private function onKeyDown(event: KeyboardEvent):void
{
trace("123");
}
}
但是当我正在运行它并按下任何按钮时,没什么好笑的。我做错了什么?
答案 0 :(得分:3)
对stage.addEventListener()
s {/ p>> KeyboardEvent
原因在于,无论您将事件添加到需要焦点,stage
始终具有焦点。
如果GameObjectController
不是文档类,则需要将stage
解析为其构造函数才能使其生效,或者需要先将其添加到舞台中。前者实施起来不那么混乱。
public function GameObjectController(stage:Stage)
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
}
答案 1 :(得分:0)
将键盘事件添加到舞台并导入KeyboardEvent类。
package
{
import flash.display.Sprite;
import flash.events.KeyboardEvent;
public class GameObjectController extends Sprite
{
public function GameObjectController()
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownEventHandler);
}
private function keyDownEventHandler(event:KeyboardEvent):void
{
trace(event);
}
}
}