我面临一个与UIComponent的setFocus()方法相关的问题。我有一个textinput,我在应用程序的creationComplete上写了textInput.setFocus(),即
私有函数onCreationComplete():void {
// 1st approach
textInput.setFocus();
// 2nd approach
textInput.focusManager.setFocus(textInput);
textInput.focusManager.showFocus();
}
在使用这两种方法时,我可以看到我的文本输入有一个光标,表明它已经得到了焦点。但问题是,除非我手动点击文本输入,否则它不会从键盘获得任何输入。
此行为在Flex中是否正常,或者我使用的Flash Player是否存在任何问题或浏览器存在任何问题?
Flex SDK:4.1
浏览器& Flash Player版本
任何人都可以让我知道这是什么问题?任何意见都将受到高度赞赏!
答案 0 :(得分:0)
试试这个,
private function onCreationComplete():void {
textInput.setFocus();
textInput.setSelection(0,0);
}
希望它有所帮助。
答案 1 :(得分:0)
您正在将焦点设置为应用程序内的TextInput,但是当加载网页时,Flash应用程序没有焦点。这就是为什么你的应用程序没有得到任何键盘事件。
尝试搜索如何在页面加载时将焦点设置到Flash应用程序。
例:
How do I make my flash object get focus on load?
答案 2 :(得分:0)
试试这个。在mxml中,您可以提供
focusEnabled = true
希望它会有所帮助
答案 3 :(得分:0)
这个适用于所有broswers(IE,Firefox和Chrome) 在index.template.html文件中添加以下脚本块
<script>
function setFocusOnFlash() {
var f=swfobject.getObjectById('yourFlashObjectId');
if (f) { f.tabIndex = 0; f.focus(); }
}
</script>
并将其称为onload in body tag
<body onload="setFocusOnFlash()">
在你的applicationCreationComplete上添加以下行
focusManager.setFocus(textInput);
textInput.focusManager.showFocus();