Flex 学习笔记 页面初始化设置TextInput焦点失败问题
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
}