短い間隔 (100 ミリ秒程度) の繰り返しタイマーを使用して、new Date().getTime()
各ティックをチェックすることができます。デフォルトでは、 newDate
は現在のシステム時刻を持ちgetTime()
、簡単に比較できるように時間をミリ秒単位で提供します。それを開始時間と比較し、少なくとも 30 秒が経過したらゲームを終了します。何かのようなもの:
import flash.utils.Timer;
import flash.events.TimerEvent;
var ticker:Timer = new Timer(100, 0);
ticker.addEventListener(TimerEvent.TIMER, checkElapsedTime);
var startTime:Number = new Date().getTime();
ticker.start();
function checkElapsedTime(e:TimerEvent):void {
var now:Number = new Date().getTime();
if (now - startTime >= 30 * 1000) {
// End the game and stop the ticker.
ticker.stop();
ticker.removeEventListener(TimerEvent.TIMER, checkElapsedTime);
}
}
タイマーが非常に遅い場合は、明らかに多少の遅れが生じるため、回答が送信されたときに同じチェックを実行し、期限が過ぎた場合は無視する場合に備えて.
最後に、ユーザーがシステム クロックを変更したかどうかを確認するには、以前のクロックを保存now
し、新しいクロックnow
が常に大きいことを確認します。