我想知道用户从我的Flex 4应用程序中运行的浏览器的类型和版本。我知道我可以通过使用ExternalInterface调用Javascript获得该信息。我知道我可以从服务器获取该信息。

我正在寻找一种直接从动作脚本获取信息的方法。我的意思是,是否没有全局变量或保留此信息的内容?

最佳答案

您不能,因为您没有提到的任何全局变量。

但是,是否不使用ExternalInterface和JavaScript?

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 );
        }

    }

}

10-07 22:54