我在 init 方法中将焦点设置到文本字段,但是键盘输入事件仅在我首先单击文本字段时才有效。
问题是什么?
这是因为,在 AS3 中,默认情况下,stage
获得了焦点。因此,如果您将键盘事件侦听器添加到除stage
您必须将焦点设置到该对象之外的任何内容。例如,如果txt
是您的文本字段,则您正在添加一个键盘事件侦听器,txt
那么您必须为此获得焦点
stage.focus = txt;
该行将焦点带到文本字段,但请记住,如果您单击除此之外的任何内容,该对象就会获得焦点。不用说,txt
失去焦点。
提示:尝试使用将键盘事件侦听器添加到stage
,如果这样做,则无论哪个对象具有焦点,它都会在单击或释放键时调度事件。
stage.addEventListener(KeyBoardEvent.KEY_DOWN, onKeyDown);