4

根据Adob ​​e 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 + 10MIN + 9(显然必须考虑最小值本身)相同。因此,当您达到 24 天标记时,它可能看起来像 -24 天并开始回升。

函数本身也有可能不会返回实际时间,而是类似以下内容:

return timer % int.MAX_VALUE;

这将使用简单的模数将每次达到 MAX_VALUE 的时间重置为 0。老实说,如果这是他们所做的事情,我不会感到惊讶(因为您显然不想要负面的运行时间)

于 2012-11-16T00:58:54.270 回答