4

AdobeごとのgetTimer()は次のとおりです。

相対時間を計算するために使用されます。ActionScript 3.0を処理するFlashランタイムの場合、このメソッドは、ActionScript 3.0(AVM2)のFlashランタイム仮想マシンが起動してから経過したミリ秒数を返します。

getTimerはintを返すため、次のようになります。

intクラスを使用すると、32ビットの符号付き整数を表すデータ型を操作できます。intクラスで表される値の範囲は、-2,147,483,648(-2 ^ 31)から2,147,483,647(2 ^ 31-1)です。

getTimer()は2,147,483,647ミリ秒後に何を返しますか?それはおよそ24.85日連続のランニングになると思います。通常の状況ではありませんが、完全に実行可能なデジタルサイネージとキオスクのコンテキストの場合です。

このような状況では、getTimer()を避ける必要がありますか?Date.UTC()オブジェクトはNumberタイプを返すため、より安全でしょうか?

4

1 に答える 1

1

私の推測では、intと同じように、それ自体がループバックします。

var nt:int = int.MAX_VALUE + 10; //outputs -2147483639
var nt2:int = int.MIN_VALUE + 9; //outputs -2147483639

ご覧のとおりMAX + 10、はと同じですMIN + 9(明らかに、最小値自体を考慮する必要があります)。したがって、その24日のマークに達すると、おそらく-24日のように見え、元に戻り始めます。

関数自体が実際の時刻を返さない可能性もありますが、これらの線に沿った何かが返されます。

return timer % int.MAX_VALUE;

これにより、単純なモジュラスを使用して、MAX_VALUEが0に達するたびに時間がリセットされます。私は正直に言って、これが彼らの仕事であるとしても驚かないでしょう(明らかに、負のランタイムを望まないからです)

于 2012-11-16T00:58:54.270 に答える