You can't since you don't have any global variables as you mention.
But whty not use ExternalInterface and 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 )
If you put it in a class as a static method, for you it would be as transparent as calling an intrinsic class...
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 );
}
}
}