如何检测Flex应用程序是否失去焦点

时间:2020-03-05 18:48:32  来源:igfitidea点击:

作为此问题的后续措施:开发在线考试应用程序,如何防止作弊?

我可以检测到Flex应用程序何时失去焦点吗?也就是说,如果用户单击了另一个应用程序或者打开了浏览器选项卡?

我读到以下内容:检测Flex应用程序何时失去焦点但不是很清楚...

解决方案

回答

该链接上的代码的关键部分是

systemManager.stage.addEventListener(Event.DEACTIVATE,deactivate);

当焦点进入和离开播放器时,Flash Player会发出激活和停用事件。我们需要做的就是为它们创建一个侦听器并做出适当的反应。

有关如何使用激活和停用事件的更清晰示例,请参见blog.flexaxamples.com。

同样,在某些浏览器中,激活和停用事件似乎也有问题。 Colin Moock在这里有更多信息。

回答

这将有助于检测Flex窗口何时失去焦点,但是无需真正单击Flex应用程序即可检测到窗口何时重新获得焦点,这需要HTML包装程序中的更新,对吗?就像是:

<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = ${version_major};
// Minor version of Flash required
var requiredMinorVersion = ${version_minor};
// Minor version of Flash required
var requiredRevision = ${version_revision};
// -----------------------------------------------------------------------------
// -->

    function onAppFocusIn()
    {
        ${application}.onAppFocusIn();
        alert("onAppFocusIn");
    }

</script>
<body scroll="no" onFocus="onAppFocusIn()">

我正在尝试实现此功能,但是一旦我移回flex应用程序窗口,onAppFocusIn()函数就不会执行。当我查看源代码时,代码就在那里。有谁知道为什么?

谢谢,
安妮