AS3.0中stage 监听器问题
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownFun);点击键盘左右键时控制一个影片剪辑移动。现在的问题是,当我运行开程序后,必须用鼠标单击一下界面,才会接收到键盘事件,否则影片剪辑是不会动的。这该怎么解决?
[解决办法]
凑合看了,无非是初始化的时候把焦点 stage.focus 对象设置一下.
<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="600" height="650" minWidth="955" minHeight="600" initialize="init();"> <s:SpriteVisualElement id="containter" /> <fx:Script> <![CDATA[ import flash.display.Sprite import flash.events.Event; import flash.events.KeyboardEvent; import flash.events.MouseEvent; public function init():void{ var t:Sprite = new Sprite(); this.addEventListener(Event.ADDED_TO_STAGE,function():void{t.stage.focus=t}); this.addEventListener(MouseEvent.CLICK,function():void{t.stage.focus=t}); t.focusRect=false; containter.addChild(t) } ]]> </fx:Script></s:Application>
[解决办法]
焦点管理
[解决办法]
吧焦点设置在state上。