代码之家  ›  专栏  ›  技术社区  ›  jedierikb grijalvaromero

如何查询flash是否有焦点

  •  1
  • jedierikb grijalvaromero  · 技术社区  · 15 年前

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

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

    但是,如果闪光灯有焦距或者没有焦距,是否有直接查询的方法呢?

    (试图找出启动时闪光灯是否有焦点…)

    2 回复  |  直到 15 年前
        1
  •  2
  •   greggreg    15 年前

    我很肯定闪光灯启动时从来没有焦点。必须点击才能获得焦点。从那里,您可以存储焦点更改,并根据自己的喜好使用它们。

        2
  •  1
  •   Tmdean    15 年前

    我认为您无法通过ActionScriptAPI获得这些信息。

    我认为如果您为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>
    

    在瞬间…

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

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