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
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.
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));
użyłem kodu: var urlRequest: URLRequest = new URLRequest (Application.application.url) ; navigateToURL (urlRequest, "_ self"); Ale to nie działa .. :( –
Edytowałem swoją odpowiedź. Dodałem sposób na uzyskanie aktualnego adresu strony :) –
dziękuję za odpowiedź. Ale aplikacja otwiera się w nowym oknie. –
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);
}
ya. teraz działa dobrze ... dziękuję za odpowiedź :) –