2009-04-13 6 views

Répondre

5

Javascript peut vous aider à détecter le navigateur et déterminer UserAgent. Utilisez ExternalInterface pour que le Javascript parle à votre application flexible. Voici une interface externe tutorial.

+0

Existe-t-il un moyen de le faire dans Flex? Ou la route EI est-elle ma seule option? – DyreSchlock

+0

AFAIK, il n'y a pas de classe Flex intégrée pour récupérer directement les données du navigateur. Jetez également un oeil à cet exemple Je suis enclin à penser que JS + AS est la voie à suivre. – dirkgently

+0

Cela n'aurait aucun sens de l'exposer dans Flex, car les applications Flex ne sont pas nécessairement hébergées dans un navigateur. – Tmdean

2

Votre javascript:

function determineBrowser() 
{ 
    // do whatever browser checks you prefer here, then return 
    // a value (a string would probably work best) that will indicate 
    // to your flash what browser it is 

    // I'm just gonna copy and paste an extremely 
    // simple one for example purposes 

    if(navigator.appName == "Netscape") 
    { 
     return "Netscape"; 
    } 
    if(navigator.appName == "Microsoft Internet Explorer") 
    { 
     return "Internet Explorer"; 
    } 

    return "Not IE or Netscape"; 
}

Votre Actionscript:

import flash.external.ExternalInterface; 

var browser: String = ExternalInterface.call("determineBrowser"); 

En utilisant ce que je faisais, quel que soit votre fonction javascript retourne est ce que la variable du navigateur en actionscript sera, de sorte que vous pouvez obtenir un navigateur données dont vous avez besoin tant que vous faites le javascript le déterminer.

Je recommande de le rendre un peu plus robuste que moi, mais je voulais juste vous donner l'idée de base en termes assez courts pour être facile à digérer!

10

vous pouvez 'intégrer votre javascript à l'intérieur du code AS3 comme ceci:

var v : String = ExternalInterface.call("function(){return navigator.appVersion+'-'+navigator.appName;}"); 
var t : TextField = new TextField(); 
t.autoSize = TextFieldAutoSize.LEFT;    
addChild(t); 
t.text = v; 

le textField affiche infos sur le navigateur comme celui-ci (chrome):

5,0 (de Windows; U; de Windows NT 5.1; fr-FR) AppleWebKit/525.19 (KHTML, comme Gecko) Chrome/1.0.154.53 Safari/525.19-Netscape

+0

ce n'est pas une mauvaise idée. – DyreSchlock

Questions connexes