0

我是 ActionScript 3 的初学者,我正在尝试遍历一组 MovieClips 并从中挑选出数百个随机剪辑并将这些实例放在舞台上,但有时代码会产生未定义的错误。我很困惑为什么代码在大多数情况下都运行良好并且从来没有任何编译时错误。

这是我的代码:

for(var i:int = 0; i<100;i++)
{

   var rndNum:Number = Math.round(Math.random()*arr.length);
   this.addChild(arr[rndNum]);
}
4

1 回答 1

4

因为您正在四舍五入随机生成的索引,这可能导致索引超出范围异常,那是因为您生成的数字最多为数组的 Length 并且表示数组总长度的数字永远不能成为有效索引该数组,因为索引从 0 开始。

只需更改Math.roundMath.floor

var rndNum:Number = Math.floor(Math.random()*arr.length);

或从 arr 的长度做 -1 :

var rndNum:Number = Math.round(Math.random()*(arr.length-1));
于 2012-12-20T19:03:01.017 回答