Vedo due problemi nel codice. Uno è che mentre si ha la logica di check internet connection, non c'è alcun codice che chiama la funzione, quindi la logica del reindirizzamento non verrebbe chiamata. Il secondo è che usare AIRcore.swc sarebbe una cattiva idea dato che hai iniettato una dipendenza che potrebbe non funzionare o violare la sandbox del browser.
Puoi provare l'approccio seguito che viene testata e non necessita di AIR SWC:
Fase 1, includono una nuova classe ConnectionChecker
come segue:
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));
}
}
}
Fase 2, nella vostra applicazione principale o da nessuna parte la connessione internet deve essere controllato, utilizzare il seguente frammento:
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
}
fonte
2012-11-26 17:15:02
scusa, ti dispiace controllare questo collegamento http://stackoverflow.com/questions/39849033/flash-cs6-as3-check-internet-connection-not-working-at-all/39860240?noredirect=1# comment67291875_39860240 –