作业帮 > 综合 > 作业

为什么一定要加这句话呢:stage.focus = stage(AS3)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/05 09:54:00
为什么一定要加这句话呢:stage.focus = stage(AS3)
原代码:
// give stage back the keyboard focus
stage.focus = stage;
如果把这句话删掉,当在swf里点击完对话框后再按键盘就不起作用.可是为什么会不起作用呢,为什么一定要加这句话呢 -
addEventListener(Event.ENTER_FRAME,onEnterFrame_func);

function onEnterFrame_func(_evt:Event):void{
trace(stage.focus);
}

测试一下上段代码吧,应该是对话框removeChild后,因为stage.focus指向的对象失效,令到键盘失效所致,所以一般通用解决方案就是在移除前把键盘焦点赋值给stage(未removeChild前,DisplayObject的root、stage、parent三值都不为null)