희망이 있으시면 ... 타이머를 사용하여 스테이지에서 상호 작용을 확인하고 웹 서비스 도메인의 테스트 파일로 URLLoader를 지정하여 모든 기능이 작동하는지 확인하십시오. 그렇다면 자바 스크립트에 location.reload
을 새로 고침하세요.
package {
import flash.display.Stage;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.events.TimerEvent;
import flash.events.TouchEvent;
import flash.external.ExternalInterface;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.utils.Timer;
public class TimeoutRefresh {
private var tt:Timer;
private var online:Boolean;
private var ldr:URLLoader;
public function TimeoutRefresh(stageRef:Stage, minutes:int) {
//set up timer
tt = new Timer(minutes * 60 * 1000);
tt.addEventListener(TimerEvent.TIMER, checkConnection);
tt.start();
//listen for interaction
stageRef.addEventListener(TouchEvent.TOUCH_BEGIN, refreshTimer);
stageRef.addEventListener(MouseEvent.CLICK, refreshTimer);
}
private function refreshTimer(e:MouseEvent):void {
//some interaction on stage, restart timer
tt.reset();
tt.start();
}
private function checkConnection(e:TimerEvent):void {
//no interaction, stop the timer
tt.stop();
//check for internet connection
var req:URLRequest = new URLRequest("www.yourWebserviceDomain.com/aTestFile.txt");
ldr = new URLLoader(req);
ldr.addEventListener(IOErrorEvent.IO_ERROR, onIoErrorEvent);
ldr.addEventListener(ProgressEvent.PROGRESS, onLoaderActivity);
ldr.addEventListener(Event.COMPLETE, onLoaderActivity);
}
private function onIoErrorEvent(e:IOErrorEvent):void {
//The remote server is not working, maybe it fixes itself in a while...
tt.reset();
tt.start();
//remove listeners
checkConnectionDone();
}
private function onLoaderActivity(e:ProgressEvent):void {
//The webservice is up and running, lets refresh...
if (ExternalInterface.available) ExternalInterface.call("document.location.reload");
//and reset timer
tt.reset();
tt.start();
//remove listeners
checkConnectionDone();
}
private function checkConnectionDone():void {
if (ldr.bytesLoaded < ldr.bytesTotal) ldr.close();
ldr.removeEventListener(IOErrorEvent.IO_ERROR, onIoErrorEvent);
ldr.removeEventListener(ProgressEvent.PROGRESS, onLoaderActivity);
ldr.removeEventListener(Event.COMPLETE, onLoaderActivity);
ldr = null;
}
}
}
출처
2012-11-12 23:56:36
chq
감사합니다. 당신은 정확하고 그것을 고려했습니다. 일부 키오스크는 연결 상태가 좋지 않은 곳에서 로컬로 호스팅됩니다 (Wi-Fi). 그러나 브라우저 확장을 설정하는 것이 이상적입니다. 네가 알기라도하면 내가 알게 해줘. 감사합니다. – user1328229