Tôi thấy hai vấn đề trong mã của bạn. Một là trong khi bạn có logic để check internet connection, không có bất kỳ mã nào gọi hàm, do đó logic của chuyển hướng sẽ không được gọi. Thứ hai là sử dụng AIRcore.swc sẽ là một ý tưởng tồi khi bạn đã tiêm một phụ thuộc có thể không hoạt động hoặc vi phạm sandbox trình duyệt.
Bạn có thể thử các phương pháp sau đây được thử nghiệm và không đòi hỏi của AIR SWC:
Bước 1, bao gồm một lớp mới ConnectionChecker
như sau:
package
{
import flash.events.*;
import flash.net.*;
[Event(name="error", type="flash.events.Event")]
[Event(name="success", type="flash.events.Event")]
public class ConnectionChecker extends EventDispatcher
{
public static const EVENT_SUCCESS:String = "success";
public static const EVENT_ERROR:String = "error";
// Though google.com might be an idea, it is generally a better practice
// to use a url with known content, such as http://foo.com/bar/mytext.txt
// By doing so, known content can also be verified.
// This would make the checking more reliable as the wireless hotspot sign-in
// page would negatively intefere the result.
private var _urlToCheck:String = "http://www.google.com";
// empty string so it would always be postive
private var _contentToCheck:String = "";
public function ConnectionChecker()
{
super();
}
public function check():void
{
var urlRequest:URLRequest = new URLRequest(_urlToCheck);
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, loader_complete);
loader.addEventListener(IOErrorEvent.IO_ERROR, loader_error);
try
{
loader.load(urlRequest);
}
catch (e:Error)
{
dispatchErrorEvent();
}
}
private function loader_complete(event:Event):void
{
var loader:URLLoader = URLLoader(event.target);
var textReceived:String = loader.data as String;
if (textReceived)
{
if (textReceived.indexOf(_contentToCheck))
{
dispatchSuccessEvent();
}
else
{
dispatchErrorEvent();
}
}
else
{
dispatchErrorEvent();
}
}
private function loader_error(event:IOErrorEvent):void
{
dispatchErrorEvent();
}
private function dispatchSuccessEvent():void
{
dispatchEvent(new Event(EVENT_SUCCESS));
}
private function dispatchErrorEvent():void
{
dispatchEvent(new Event(EVENT_ERROR));
}
}
}
Bước 2, trong ứng dụng chính của bạn hoặc bất cứ nơi nào bạn nên kiểm tra kết nối internet đó, sử dụng đoạn mã sau:
var checker:ConnectionChecker = new ConnectionChecker();
checker.addEventListener(ConnectionChecker.EVENT_SUCCESS, checker_success);
checker.addEventListener(ConnectionChecker.EVENT_ERROR, checker_error);
checker.check();
private function checker_success(event:Event):void
{
// There is internet connection
}
private function checker_error(event:Event):void
{
// There is no internet connection
}
Nguồn
2012-11-26 17:15:02
xin lỗi, bạn có nhớ kiểm tra liên kết này không, vui lòng http://stackoverflow.com/questions/39849033/flash-cs6-as3-check-internet-connection-not-working-at-all/39860240?noredirect=1# comment67291875_39860240 –