2009-11-08 9 views
1

Je sais que je peux détecter le flash et gagner perdre de vue ces callbacks:comment interroger si le flash a le focus

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

Mais est-il de toute façon à clignoter directement requête si elle a le focus ou non?

(Essayer de savoir si le flash a le focus au démarrage ...)

Répondre

2

Je suis assez sûr que le flash n'a jamais le focus au démarrage. Il doit être cliqué sur pour gagner le focus. De là, vous pouvez stocker les changements de mise au point et travailler avec eux comme vous le souhaitez.

1

Je ne pense pas que vous pouvez obtenir cette information avec l'API ActionScript.

Je pense que cela fonctionnerait si vous attribuez un ID à l'élément d'intégration Flash, suivez l'identificateur de l'ID avec JavaScript et interrogez si l'intégration a un focus à l'aide de 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> 

Et dans Flash ...

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

Edité pour ajouter - apparemment cela ne fonctionne pas dans Internet Explorer.

Questions connexes