如何激活Flex应用程序,以便用户不必在其中单击以开始获取键盘事件

Ass*_*vie 2 apache-flex

我的Flex应用程序非常以键盘为导向.它使用100%的浏览器窗口,我希望用户能够立即开始使用它 - 只要它加载.

但是,当鼠标点击其中的某个位置时,应用程序似乎只是首次"激活"(即激活事件触发),这对我的键盘式应用程序来说非常不方便.

我可以在加载期间/之后的某个时刻强制激活我的应用程序吗?

我希望每次页面加载时我都不必显示一些愚蠢的"点击内部激活"叠加层...

附录

在某些浏览器中([咳嗽] Chrome [/ cough]),只要用户离开浏览器(甚至触摸地址栏),焦点就会丢失,并且在切换回来时不会重新获得.因此,解决方案不仅要考虑页面加载时的第一个焦点,还要考虑"重新聚焦".

Ger*_*ger 5

AFAIK问题仅出现在Firefox等某些浏览器中.您可以使用一点JavaScript来改变这种行为.编辑index.template.html并在<head></head>标记中添加以下代码段:

<script type="text/javascript">
    function setFocusToSwf() {
        var swf = document.getElementById('${application}');
         if (swf) swf.focus();
    }
</script>
Run Code Online (Sandbox Code Playgroud)

Flex Builder将${application}在编译应用程序时替换占位符.

更改<body>标记,以便在浏览器加载文档时调用新函数:

<body onload="setFocusToSwf()">
Run Code Online (Sandbox Code Playgroud)