0

AS3/Flash を使用して Web アプリを作成しました。このアプリケーションはキオスクとしてタッチ スクリーン モニターで紹介されているため、キーボードやマウスはありません。現時点では、単純なメタ更新を使用して、10 分ごとにページを更新しました。

問題: ユーザーがアプリケーションを操作しているときに、10 分間のカウントダウンがバックグラウンドで継続的に実行され、ユーザーがコンテンツを操作している間にページが自動的に更新されます。

対話性があるかどうかを監視し、ユーザーが対話を停止した後に更新するアプリケーション、ブラウザー拡張機能、または jquery スニペットが必要です。ユーザーが停止すると、10 分間のカウントダウンが開始されます。次のユーザーが使用を開始すると、カウントダウンが再開されます。

これは私が遭遇した同様の議論ですが、ファイルの変更に関するものです。 ファイルの変更時に Firefox を自動更新するにはどうすればよいですか?

4

2 に答える 2

0

代わりに、ある種のキオスクモード拡張機能を調べる必要があります。スクリプトを使用してページを更新する際の問題は、接続がダウンしている場合、ブラウザが404ページにアクセスしてしまうことです。キーボードがないため、F5を押して更新することはできません。

于 2012-11-12T20:43:43.960 に答える
0

これがお役に立てば幸いです...タイマーを使用してステージでのやり取りを確認し、URLLoaderをWebサービスドメインのテストファイルにポイントして、すべてが稼働しているかどうかを確認します。location.reloadその場合は、JavaScriptでaを呼び出して更新します。

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-12T23:56:36.340 に答える