2011-08-02 26 views
5

Zaprojektowałem aplikację quizową w środowisku Flex 4. Na koniec chcę przeładować moją aplikację (to znaczy odświeżyć stronę w przeglądarce). Na koniec pokażę wynik w ostrzeżeniu. Potem chcę ponownie załadować bieżącą aplikację. Jak mogę to zrobić?Jak odświeżyć aplikację w programie Flex?

Odpowiedz

3

Aby spowodować, że odświeżenie nie nastąpi, dopóki nie zostanie kliknięty alert:

<?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> 

Możesz usunąć opcję "NIE", usuwając ją z trzeciego parametru parametru Alert.show lub jako trzeci.

+0

ya. teraz działa dobrze ... dziękuję za odpowiedź :) –

3

tylko nawigować z powrotem na swojej stronie :)

navigateToURL(new URLRequest("linktoyourwebsite")); 

aby uzyskać adres URL bieżącej strony, można użyć następującego kodu:

import flash.external.ExternalInterface; 

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

więc kod wówczas postać:

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

użyłem kodu: var urlRequest: URLRequest = new URLRequest (Application.application.url) ; navigateToURL (urlRequest, "_ self"); Ale to nie działa .. :( –

+0

Edytowałem swoją odpowiedź. Dodałem sposób na uzyskanie aktualnego adresu strony :) –

+0

dziękuję za odpowiedź. Ale aplikacja otwiera się w nowym oknie. –

0

inna odpowiedź. musimy wywołanie funkcji w AS3

ExternalInterface.call("reload"); 

w pliku html w ciągu javascript musimy zdefiniować funkcję przeładować

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