这不是一个真正的问题,因为修复很简单而且成本很低。我猜这是我不明白的for
或uint
我不明白的一些属性,我只是想知道发生了什么,所以......
使用 ActionScript 3,我设置了一个for
循环以向后遍历 a 的元素Vector
。
var limit:uint = myVector.length-1;
for(var a:uint = limit; a >= 0; a--)
{
trace(a);
}
当我运行它时,它会2, 1, 0
按预期输出,但随后会继续4294967295
并从那里开始倒计时,直到循环超时并抛出Error #1502
.
解决方法是简单地输入a
asint
而不是uint
,但我不明白为什么。当然,我正在处理 0 或更大的值,所以uint
正确的数据类型对吗?
我想这4294967295
是最大值,uint
但我的计数如何到达那里?
如果你这样做
var myUint:uint = 0;
trace(myUint - 1);
那么输出是-1
为什么,在我的循环中我应该突然跳回4294967295
?
很抱歉这个有点漫不经心的问题,并为任何帮助而欢呼。