0

我面临一个与 UIComponent 的 setFocus() 方法相关的问题。我有一个文本输入,我在应用程序的creationComplete 上编写了textInput.setFocus(),即

私有函数 onCreationComplete():void {

 // 1st approach     
 textInput.setFocus();

 // 2nd approach
 textInput.focusManager.setFocus(textInput); 
 textInput.focusManager.showFocus();

}

在使用这两种方法时,我可以看到我的文本输入有一个光标,表明它已经获得焦点。但问题是,除非我手动单击文本输入,否则它不会从键盘获得任何输入。

这种行为在 Flex 中是否正常,或者我正在使用的 Flash Player 是否有任何问题,或者浏览器是否有任何问题?

弹性 SDK:4.1

浏览器和 Flash 播放器版本

  1. 带有 Flash Player 调试器版本 11.3.300.257 的 IE 9...
  2. Chrome 15.0.874.121 与 Flash Player 11.1.102.55...
  3. 带有 Flash Player 11.9.900.117 的 Firefox 20.0.1...

谁能让我知道是什么问题?任何输入将不胜感激!

4

4 回答 4

0

您正在将焦点设置为应用程序内的 TextInput,但是当加载网页时,Flash 应用程序没有焦点。这就是为什么您的应用没有收到任何键盘事件的原因。
尝试搜索如何在页面加载时将焦点设置在 Flash 应用程序上。

示例:
如何让我的 flash 对象专注于负载?

于 2013-12-10T08:50:19.237 回答
0

尝试这个,

private function onCreationComplete():void {

 textInput.setFocus();

 textInput.setSelection(0,0);

}

希望能帮助到你。

于 2013-12-10T07:38:57.700 回答
0

尝试这个。在 mxml 你可以给

焦点启用 = 真

希望它会有所帮助

于 2013-12-10T10:00:38.037 回答
0

这适用于所有浏览器(IE、firefox 和 chrome) 在您的 index.template.html 文件中添加以下脚本块

<script>
    function setFocusOnFlash() {
      var f=swfobject.getObjectById('yourFlashObjectId');
      if (f) { f.tabIndex = 0; f.focus(); }
    }
</script>

并在body标签中调用它

<body onload="setFocusOnFlash()">    

在您的 applicationCreationComplete 上放下面几行

focusManager.setFocus(textInput); 
textInput.focusManager.showFocus();
于 2013-12-10T10:02:03.780 回答