2010-02-19 26 views
7

Kullanıcının kullandığı tarayıcı türünü ve sürümünü Flex 4 uygulamamda bilmek istiyorum. Javascript'i çağırmak için ExternalInterface kullanarak bu bilgiyi alabileceğimi biliyorum. Bu bilgiyi sunucudan alabileceğimi biliyorum.Tarayıcıdan Türü Algıla ve Flash Sürümü içinden Flash Versiyon

Bu bilgileri doğrudan actionscript'ten edinmenin bir yolunu arıyorum. Demek istediğim, küresel bir değişken veya bu bilgiyi saklayan bir şey yok mu?

+0

benim tahminim olduğunu yapamazsın, daha flash.capabilities içinde daha fazla olduğunu umuyorum ama orada sadece İşletim Sistemi ve oyuncu türünü bulabilirsiniz. – Les

cevap

9

Sözünü ettiğiniz gibi global değişkenleriniz olmadığı için yapamazsınız.

Ancak ExternalInterface ve JavaScript'i kullanmıyor musunuz? Eğer bir içsel sınıf çağıran olduğunca şeffaf olacağını sizin için, statik yöntem olarak bir sınıfta koyarsanız

var method:XML = <![CDATA[ 
    function(){ 
     return { appName: navigator.appName, version:navigator.appVersion};} 
    ]]> 

var o:Object = ExternalInterface.call(method); 
trace("app name ",o.appName,"version ", o.version) 

...

package { 
    import flash.external.ExternalInterface; 


    public class BrowserUtils { 

     private static const CHECK_VERSION:XML = <![CDATA[ 
      function() { 
       return { appName: navigator.appName, version:navigator.appVersion }; 
       } 
      ]]>; 

     public static function getVersion():Object { 
      if (!ExternalInterface.available) return null;    

      return ExternalInterface.call(CHECK_VERSION); 
     } 

    } 

} 
+0

@Lars: İşlev, çağırmak için ExternalInterface.call() işlevi nedeniyle tarayıcıda çalıştırılır. @ goliatone, detaylı cevap için teşekkürler, muhtemelen bunu yapacağım. Şimdiye kadar kullanabileceğim global bir değişken olup olmadığını merak ettim, ancak dokümanlarda bulamadım. – Jaffer

+0

@Lars: Temel olarak, dış arabirim ona ilettiğiniz herhangi bir dizeyi yürütmeyi deneyecektir. Metodumu cdata xml etiketinde tamamladım, böylece bu dizeyi editörümde rahat bir şekilde oluşturabileceğim. @jaffer: Anlıyorum, bu şekilde en uygun olurdu. – goliatone