2009-02-14 6 views

Répondre

4

Il y a des problèmes connus avec la gestion de focale et Flash dans Firefox, malheureusement.

Here's an article cela explique une approche qui pourrait fonctionner pour vous, cependant; le résultat est que vous pouvez utiliser JavaScript et flash.external.ExternalInterface pour notifier le fichier Flash de l'activité du clavier jusqu'à ce que le contrôle Flash gagne normalement le focus. J'ai mis en place une approche comme celle-ci avant et ça marche très bien; par exemple, ma propre solution avait l'air quelque chose comme ça, dans la page HTML contenant:

<script language="javascript"> 

    if (navigator.appName.indexOf("Microsoft") != -1) 
    { 
     document.attachEvent("onkeydown", ieKeyHandler); 
     window.attachEvent("onkeydown", ieKeyHandler); 

     function ieKeyHandler(event) 
     {  
      sendToFlash(event.keyCode); 
     }  
    } 
    else 
    { 
     document.onkeydown = function(e) 
     {  
      sendToFlash(e.keyCode); 
     } 
    } 

    function sendToFlash(s) 
    {  
     var flashCtl = thisMovie("yourFlashObjectID"); 
     flashCtl.callIntoFlashFromJavascript(s);    
    } 

    function thisMovie(movieName) 
    { 
     if (navigator.appName.indexOf("Microsoft") != -1)   
     { 
      return window[movieName]; 
     } 
     else 
     { 
      return document[movieName]; 
     } 
    } 

</script> 

... puis dans le fichier Flash, vous pouvez simplement définir un gestionnaire de rappel ExternalInterface pour une fonction appelée callIntoFlashFromJavascript et passer l'argument de la chaîne dans votre contrôle de texte. C'est un peu lourd, certes, mais ça fonctionne. Voir my answer to this question as well pour un exemple complet d'utilisation de ExternalInterface avec JavaScript. J'espère que cela aide!

Questions connexes