(转)AS3焦点事件
一个对象获取焦点,可理解为被选中。
FocusEvent的类型只有4种:
FocusEvent.FOCUS_IN: 存储字符串“focusIn”指定获得焦点的事件类型
EocusEvent.FOCUS_OUT:存储字符串“focusOut”指定失去焦点的事件类型
FocusEvent.KEY_FOCUS_CHANGE:存储字符串“keyFocusChange”指定通过按钮改变焦点的事件类型
FocusEvent.MOUSE_FOCUS_CHANGE:存储字符串“mouseFocusChange”指定通过鼠标改变焦点的事件类型
焦点实例
mc1.tabIndex = 1;
mc2.tabIndex = 2;
mc3.tabIndex = 3;
var tf:TextField = new TextField();
tf.autoSize = 'left';
tf.x = tf.y = 10;
var format:TextFormat = new TextFormat();
format.size = 14;
tf.defaultTextFormat = format;
addChild(tf);
stage.addEventListener(FocusEvent.FOCUS_IN,showTarget);
function showTarget(e:FocusEvent):void{
tf.text = "现在焦点是"+e.target.name;
}
来自:http://hi.baidu.com/as3%C8%EB%C3%C5%BE%AB%CD%A8/blog/item/dba3c3b7d305f746092302cf.html
Q:点击一个MovieClip,结果该MovieClip不会获得焦点,而且还会导致stage.focus属性变为null 会影响键盘侦听
点击文本框则是好的 这是为什么,如何解决呢?
A:这个问题容易搞定. 键盘模块监听舞台的 focus in 事件每次 focus in 新的焦点后,则监听新焦点的 remove_from_stage 事件发现新焦点对象 remove , 重置 stage.focus = stage 即可