2009-09-15 23 views

Respuesta

2

Usando ExternalInterface (flash.external.ExternalInterface), puede ejecutar Javascript en el navegador. Sabiendo esto, puede llamar

ExternalInterface.call("window.location.href.toString");

para obtener la URL actual (tenga en cuenta que esta será la URL de la página y no la URL .swf).

hth

Koen

+2

Esto es ** no ** la respuesta correcta, ya que en la mayoría de los casos no se le permite ejecutar JavaScript (por ejemplo: Kongregate alojado sh) – cbroughton

4

He buscado y se me ocurrió this url. Honestamente, nunca he utilizado Flex, pero parece que la parte importante de ese documento es la siguiente:

private function showURLDetails(e:BrowserChangeEvent):void { 
    var url:String = browserManager.url; 
    baseURL = browserManager.base; 
    fragment = browserManager.fragment;     
    previousURL = e.lastURL;     

    fullURL = mx.utils.URLUtil.getFullURL(url, url); 
    port = mx.utils.URLUtil.getPort(url); 
    protocol = mx.utils.URLUtil.getProtocol(url); 
    serverName = mx.utils.URLUtil.getServerName(url); 
    isSecure = mx.utils.URLUtil.isHttpsURL(url);   
} 

De cualquier manera, buena suerte! :)

8

de la aplicación:

var myUrl:String = Application.application.url; 
0

de la aplicación, uso: this.loaderInfo.loaderURL

a romperlo y utilizar partes de él hacen :

var splitURL:Array = this.loaderInfo.loaderURL.split('/'); 
var baseURL:String = "http://"+splitURL[2]; 
+0

Sugiero usar URLUtil para este propósito: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/utils/URLUtil.html –

0

Probé la versión e: BrowserChangeEvent y dentro de mi clase no fue o no fue el momento apropiado para que este evento funcionara, ¡en resumen, no funcionó!

El uso de Application.application.loaderInfo.loaderURL es mi solución preferida.

24

Vamos a aclarar aquí.

1. Si desea que la URL del archivo SWF cargado , a continuación, utilizar uno de estos.

Dentro de su aplicación:

this.url; 

De en otro sitio:

Application.application.url; // Flex 3 
FlexGlobals.topLevelApplication.url; // Flex 4 

Si va a cargar el SWF dentro de otro SWF, a continuación, tener en cuenta que el código anterior dará valores diferentes. this.url devolverá la url de su SWF, donde Application.application.url dará la url del SWF principal/raíz.

2. Si desea conocer la dirección URL que se encuentra en la barra de direcciones del navegador , a continuación, utilizar uno de estos.

Método BrowserManager (Asegúrese de tener el Historial.js incluidos en su envoltorio html para que esto funcione):

método
var browser:IBrowserManager = BrowserManager.getInstance(); 
browser.init(); 
var browserUrl:String = browser.url; // full url in the browser 
var baseUrl:String = browser.base; // the portion of the url before the "#" 
var fragment:String = browser.fragment; // the portion of the url after the "#" 

JavaScript:

var browserUrl:String = ExternalInterface.call("eval", "window.location.href"); 

Si está analizando la url de parámetros, no se olvide de esta función útil:

// parses a query string like "key=value&another=true" into an object 
var params:Object = URLUtil.stringToObject(browserURL, "&"); 
0
ExternalInterface.call("window.location.href.toString"); 
Cuestiones relacionadas