Actionscript 3 在AS3中,当值大于最大int时,getTimer()将返回什么
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天的跑步。这不是一种常见的情况,但对于数字看板和信息亭来说是完全可行的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天的跑
在这些情况下应该避免使用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()是否会抛出一个错误,但经过讨论之后,这似乎不太可能,尽管我仍然有兴趣确定。