随机'未定义'错误

时间:2012-12-20 18:46:56

标签: actionscript-3

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

这是我的代码:

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

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

1 个答案:

答案 0 :(得分:4)

因为你正在舍入随机生成的索引,这可能导致索引超出绑定Exception,这是因为你生成一个数字直到数组的长度,并且表示数组总长度的数字永远不会是索引从0开始,该数组的有效索引。

只需将Math.round更改为Math.floor

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

或者从arr的长度做一个-1:

var rndNum:Number = Math.round(Math.random()*(arr.length-1));