应用场合:flex应用程序的登陆页面输入框,希望在加载完swf文件之后自动获取到输入焦点。
当然,这样的用户体验会好一些啦!
2种实现方案:
(1)只需要在flex应用程序中设置即可。
在flex应用程序的createComplete方法中设置如下:
// 首先要让swf文件获取到焦点
ExternalInterface.call("new Function('document.getElementById(\"xxx\").focus()')");
// 再设置flex中的具体组件获取焦点
userNameInput.setFocus();
说明:
xxx是指加载的swf文件名称,如我的应用是test.swf,即:
ExternalInterface.call("new Function('document.getElementById(\"test\").focus()')");
#个人推荐使用这种方式,因为这种方式只需要在flex中设置即可,不需要修改其他地方,对于代码的维护性来说好一些。
(2)在加载swf文件的html页面中作设置:
xxx.html是加载swf文件的页面,在onload()方法中设置:document.getElementById("xxx").focus();
当然,这种设置同样需要在flex应用的createComplete方法中设置具体组件的setFocus()方法获取焦点。
#相比起方法(1),方法(2)需要在2个地方进行修改,这样不便于代码的维护,所以不推荐。