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