Tôi đã thiết kế ứng dụng bài kiểm tra trong Flex 4. Cuối cùng tôi muốn tải lại ứng dụng của mình (đó là làm mới trang trong trình duyệt). Cuối cùng tôi sẽ thể hiện điểm số trong một cảnh báo. Sau đó tôi muốn tải lại ứng dụng hiện tại. Tôi có thể làm cái này như thế nào?Làm thế nào để làm mới một ứng dụng trong Flex?
Trả lời
Để làm mới không xảy ra cho đến khi cảnh báo của bạn được nhấp:
<?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>
Bạn có thể xóa tùy chọn "KHÔNG" bằng cách xóa tùy chọn này khỏi hoặc làm thông số thứ 3 của Alert.show.
chỉ điều hướng trở lại trang web của bạn :)
navigateToURL(new URLRequest("linktoyourwebsite"));
để có được url của trang hiện tại, bạn có thể sử dụng đoạn mã sau:
import flash.external.ExternalInterface;
var pageURL:String = ExternalInterface.call('window.location.href.toString');
do đó, mã của bạn sau đó trở thành:
var pageURL:String = ExternalInterface.call('window.location.href.toString');
navigateToURL(new URLRequest(pageURL));
tôi đã sử dụng mã: var URLRequest: URLRequest = new URLRequest (Application.application.url) ; navigationToURL (urlRequest, "_ self"); Nhưng nó không hoạt động .. :( –
tôi đã chỉnh sửa câu trả lời của mình. Tôi đã thêm một cách để nhận url trang hiện tại :) –
cảm ơn bạn đã trả lời. Nhưng ứng dụng đang mở trong cửa sổ mới. –
câu trả lời khác. chúng ta phải gọi hàm trong AS3
ExternalInterface.call("reload");
trong file html trong javascript chúng ta phải xác định chức năng reload
function reload()
{
window.location.reload(true);
}
ya. bây giờ làm việc tốt của nó .. cảm ơn bạn đã trả lời :) –