Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 在AS3中,当值大于最大int时,getTimer()将返回什么_Actionscript 3_Flash_Int - Fatal编程技术网

Actionscript 3 在AS3中,当值大于最大int时,getTimer()将返回什么

Actionscript 3 在AS3中,当值大于最大int时,getTimer()将返回什么,actionscript-3,flash,int,Actionscript 3,Flash,Int,Per getTimer()是: 用于计算相对时间。对于Flash运行时处理ActionScript 3.0,此方法返回自ActionScript 3.0(AVM2)的Flash运行时虚拟机启动以来经过的毫秒数 因为getTimer返回一个int,它: int类允许您使用表示32位有符号整数的数据类型。int类表示的值的范围是-2147483648(-2^31)到2147483647(2^31-1) 在2147483647毫秒之后,getTimer()将返回什么?我想这大概是连续24.85天的跑

Per getTimer()是:

用于计算相对时间。对于Flash运行时处理ActionScript 3.0,此方法返回自ActionScript 3.0(AVM2)的Flash运行时虚拟机启动以来经过的毫秒数

因为getTimer返回一个int,它:

int类允许您使用表示32位有符号整数的数据类型。int类表示的值的范围是-2147483648(-2^31)到2147483647(2^31-1)

在2147483647毫秒之后,getTimer()将返回什么?我想这大概是连续24.85天的跑步。这不是一种常见的情况,但对于数字看板和信息亭来说是完全可行的


在这些情况下应该避免使用getTimer()吗?Date.UTC()对象会因为返回数字类型而更安全吗?

我猜它会像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;

这将使用简单的模数将每次到达最大值时的时间重置为0。老实说,如果他们这样做的话,我不会感到惊讶(因为你显然不想要负面的运行时间)

我将在25天后回来,以知道正确的答案!令人惊叹的!我没有多余的机器,否则我会加入你们。不管怎样,我都会使用Date.UTC()。您必须检查时间,重置另一个自定义属性以清除溢出。使用Date.UTC()捕获初始开始时间,然后从新时间中减去它以获得值。同意Gone3d,我将使用Date.UTC(),两者都返回毫秒精度,因此鉴于getTimer调用返回的位宽度表示可能更小,在位溢出期间可能会产生不良影响,没有任何好处。刚刚做了一个测试,一个int值将环绕在它的MAX_值之上,这基本上是预期的:良好的响应。Date.UTC()的精确性很吸引人。我想知道Date.UTC和geTimer()之间的性能差异是什么-测试已经就绪,希望我记得比较一下。有证据表明,环绕翻转为负值是令人惊讶和有趣的。我主要想知道getTimer()是否会抛出一个错误,但经过讨论之后,这似乎不太可能,尽管我仍然有兴趣确定。