我知道我可以通过这些回调来检测闪光灯的获得和失去焦点:
stg.addEventListener( Event.DEACTIVATE, deactivateCb, false, 0, true );
stg.addEventListener( Event.ACTIVATE, activateCb, false, 0, true );
但是,如果它有焦点还是直接查询flash吗?
(试图弄清楚闪光灯在启动时是否有焦点......)
答案 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中不起作用。