ゲーム内のイベントの時間を測定したい。現在、イベントの開始時と終了時のタイムスタンプを保存し、差を計算しています。
この問題は、イベント中にユーザーがブラウザーのタブを切り替えるときに発生します。これにより、フラッシュが一時停止します。これは、フラッシュが「生きている」時間ではなく、「実際の」時間に依存するため、間隔の計算を台無しにします。
これに対する簡単な解決策はありますか?ゲームの残りの部分で一時停止する内部タイマーのように、タイムスタンプを差し引く代わりに開始して確認できます。
ゲーム内のイベントの時間を測定したい。現在、イベントの開始時と終了時のタイムスタンプを保存し、差を計算しています。
この問題は、イベント中にユーザーがブラウザーのタブを切り替えるときに発生します。これにより、フラッシュが一時停止します。これは、フラッシュが「生きている」時間ではなく、「実際の」時間に依存するため、間隔の計算を台無しにします。
これに対する簡単な解決策はありますか?ゲームの残りの部分で一時停止する内部タイマーのように、タイムスタンプを差し引く代わりに開始して確認できます。
ユーザーが JavaScript でタブを切り替えたとき (おそらくぼかしイベント) を検出できる場合は、localconnection を使用してフラッシュに別のタイムスタンプを保存するように指示し、ページがフォーカスを取り戻したときにフラッシュに別のタイムスタンプを送信できます。2 つのタイムスタンプだけを差し引くのではなく、差を追加するか無視するかを切り替える必要があります。
まず、通常の Timer() を開始します。次に、アクティブ化と非アクティブ化のリスナーを追加します...これらのイベントは、アプリがフォーカスを失ったときに発生します (ユーザーが別のタブや別のアプリに移動するなど):
addEventListener(Event.ACTIVATE, activateListener);
addEventListener(Event.DEACTIVATE, deactivateListener);
次に、リスナー メソッドでタイマーを停止して開始します。