2011-08-02 18 views
5

He diseñado una aplicación de prueba en Flex 4. Al final quiero volver a cargar mi aplicación (es decir, actualizar la página en el navegador). Al final mostraré puntaje en una alerta. Después de eso, quiero volver a cargar la aplicación actual. ¿Cómo puedo hacer esto?Cómo actualizar una aplicación en Flex?

Respuesta

3

Hacer que la actualización no suceda hasta que se haga clic en su alerta:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       xmlns:s="library://ns.adobe.com/flex/spark" xmlns:local="*" 
       > 
    <fx:Script> 
     <![CDATA[ 
      import mx.controls.Alert; 
      import mx.core.FlexGlobals; 
      import mx.events.CloseEvent; 
      protected function refreshClicked(event:Event):void 
      { 
       Alert.show("Congratulations you won", 
        "Hooray!", 
        Alert.NO|Alert.YES, null, refreshFinish); 
      } 
      protected function refreshFinish(event:CloseEvent=null):void{ 
       if(event == null){ 
        event = new CloseEvent("refreshFinish"); 
        event.detail = Alert.YES; 
       } 
       if(event.detail == Alert.YES){ 
        navigateToURL(new URLRequest(FlexGlobals.topLevelApplication.url), "_self"); 
       } 
      } 
     ]]> 
    </fx:Script> 
    <s:Button label="Alert and Refresh" click="refreshClicked(event)" /> 
</s:Application> 

Puede eliminar la opción de "NO" retirándola del o como el 3er parámetro de Alert.show.

+0

ya. ahora funciona bien ... gracias por responder :) –

3

simplemente navegar de vuelta a su sitio web :)

navigateToURL(new URLRequest("linktoyourwebsite")); 

para obtener la URL de la página actual, puede utilizar el siguiente código:

import flash.external.ExternalInterface; 

var pageURL:String = ExternalInterface.call('window.location.href.toString'); 

lo que el código se convierte entonces en:

var pageURL:String = ExternalInterface.call('window.location.href.toString'); 
navigateToURL(new URLRequest(pageURL)); 
+0

i utiliza código: var urlRequest: URLRequest = new URLRequest (Application.application.url) ; navigateToURL (urlRequest, "_ self"); Pero no funciona ... :( –

+0

he editado mi respuesta. He añadido una forma de obtener la página actual url :) –

+0

gracias por su respuesta. Pero la aplicación se está abriendo en una nueva ventana. –

0

otra respuesta. tenemos que llamar a la función en AS3

ExternalInterface.call("reload"); 

en el archivo HTML dentro de javascript tenemos que definir la función de recarga

function reload() 
    { 
    window.location.reload(true); 
    } 
Cuestiones relacionadas