flex页面初始化后,无法聚焦文本框
转自 :博客园
Flex页面初始化creationComplete事件中,加入焦点设置语句 :?focusManager.setFocus("TextInput组件ID");
页面运行后并看不到效果,将焦点设置语句放到按钮事件中,TextInput倒是焦点设置上了。
?
主要原因是我们把Flash嵌到HTML页面中,打开HTML页面时并没有聚焦,所以最好在HTML页面上加个JavaScript脚本使其聚焦即可。
?
步骤:
1、页面初始化creationComplete事件中,加入焦点设置语句 :?focusManager.setFocus("TextInput组件ID");
2、bin-debug目录中找到此页面,如 Login.html (Login对于的swf ID 就是Login), 在body中添加js方法
<body onload="document.getElementById('要加载的swf ID').focus()">
?
通过这两个步骤即可实现初始化焦点
?
?
同样的,我们也可以使用ExternalInterface.call调用,讲JS写在Flex的AS脚本里,代码如下:
???protected function init():void{
????focusManager.setFocus(txtLoginname);?//txtLoginname是TextInput组件ID
????ExternalInterface.call("document.getElementById('Login').focus()");//Login是要加载的swf ID
???}