如何查询flash是否有焦点

时间:2009-11-08 05:01:03

标签: flash actionscript-3

我知道我可以通过这些回调来检测闪光灯的获得和失去焦点:

stg.addEventListener( Event.DEACTIVATE, deactivateCb, false, 0, true );
stg.addEventListener( Event.ACTIVATE, activateCb, false, 0, true );

但是,如果它有焦点还是直接查询flash吗?

(试图弄清楚闪光灯在启动时是否有焦点......)

2 个答案:

答案 0 :(得分:2)

我很确定闪光灯在启动时永远不会有焦点。必须点击它才能获得焦点。从那里你可以存储焦点变化并随意使用它们。

答案 1 :(得分:1)

我认为您无法使用ActionScript API获取此信息。

我认为如果您为Flash嵌入元素指定ID,使用JavaScript跟踪焦点到ID,并使用ExternalInterface查询嵌入是否具有焦点,我认为它会起作用。

<object ...>
    ...
    <embed id="flash_player" type="application/x-shockwave-flash" ...></embed>
</object>
<script language="JavaScript">
    var flash_has_focus = false;
    var fp = document.getElementById('flash_player');

    fp.onfocus = function (e) {
        flash_has_focus = true;
    };
    fp.onblur = function (e) {
        flash_has_focus = false;
    };

    function is_focused() {
        return flash_has_focus;
    }
</script>

在Flash中......

var focused:Boolean = ExternalInterface.call('is_focused');

编辑添加 - 显然这在Internet Explorer中不起作用。