Apache flex 从Air应用程序将焦点设置为嵌入式flex web应用程序上的textInput

Apache flex 从Air应用程序将焦点设置为嵌入式flex web应用程序上的textInput,apache-flex,web,air,focus,Apache Flex,Web,Air,Focus,朋友们,情况非常复杂: 我有一个air应用程序,其中有一个运行flex web应用程序的HTML组件,我需要在两分钟内将焦点设置为textinput。 HTML组件在一个面板中,这在stackview中 1.-当我选择HTML组件所在的stackview索引,并且面板分派完整事件时。 我通过修改flex web应用程序的html包装器来解决这个问题,添加了如下代码 <script languaje="javascript" type="text/javascript"> fu

朋友们,情况非常复杂:

我有一个air应用程序,其中有一个运行flex web应用程序的HTML组件,我需要在两分钟内将焦点设置为textinput。 HTML组件在一个面板中,这在stackview中

1.-当我选择HTML组件所在的stackview索引,并且面板分派完整事件时。 我通过修改flex web应用程序的html包装器来解决这个问题,添加了如下代码

<script languaje="javascript" type="text/javascript">
    function setInitialFocus() {
       document.getElementById('${application}').tabIndex = 0;
       document.getElementById('${application}').focus();
    }
</script>

<body scroll="no" onload="setInitialFocus()">
内部web应用程序: 公共creationComplete_处理程序(事件:事件):无效{ localConnection.allowInsecureDomain(“应用程序#chevronLocstattDesktop”); localConnection.client=this; localConnection.connect(“_SomeConnection”); }

javascript函数执行得很好(因为我在其中添加了一些警报,并显示了它),但没有关注web应用程序,因此没有关注textInput,这正是本文的目标


请帮助我…

现在我找到了解决方案:

在web应用程序的html包装器上添加另一个函数

<script languaje="javascript" type="text/javascript">
    function unsetInitialFocus() {
       document.getElementById('${application}').tabIndex = 0;
       document.getElementById('${application}').blur();
    }
</script>

这看起来很难理解,但如果有人需要更多帮助,请询问。

1。在index.template.html中创建Javascript函数

<script language="JavaScript" type="text/javascript" >
<!--
function setFocus()
{
    window.document.YourSite.focus();
}

// -->
</script>
if (ExternalInterface.available) {
        ExternalInterface.call('setFocus');
    } else {
        Alert.show("Browser not available");
    }

    focusManager.setFocus(yourTextInput);
protected function hide(event:FlexEvent) : void {
   HTMLViewer.htmlLoader.window.unsetInitialFocus();
}
<script language="JavaScript" type="text/javascript" >
<!--
function setFocus()
{
    window.document.YourSite.focus();
}

// -->
</script>
if (ExternalInterface.available) {
        ExternalInterface.call('setFocus');
    } else {
        Alert.show("Browser not available");
    }

    focusManager.setFocus(yourTextInput);