产生随机数量的动画片段 - 功能不起作用?

时间:2013-12-21 06:20:48

标签: actionscript-3 function for-loop movieclip addchild

我试图找出如何产生随机数量的单元格,但每次运行程序时,我总是只得到一个单元格。

为什么产生的细胞数量总是1,它可以达到50? (因为我把p变量设为1到50之间的随机数。)

var myCell:Cell = new Cell();

var minLimit:uint = 1;
var maxLimit:uint = 50;
var range:uint = maxLimit - minLimit;
var p:Number = Math.ceil(Math.random()*range) + minLimit;

for (p; p < maxLimit; p += 1)
{
    addChild(myCell);
    myCell.x = xp
    myCell.y = xp
    myCell.scaleX = 6
    myCell.scaleY = 6

    var xminLimit:uint = 100;
    var xmaxLimit:uint = 400;
    var xrange:uint = xmaxLimit - xminLimit;
    var xp:Number = Math.ceil(Math.random()*xrange) + xminLimit;



}

1 个答案:

答案 0 :(得分:0)

您需要在循环内移动实例创建代码( var myCell:Cell = new Cell(); )以创建maxLimit实例数,而不是在循环外创建一个实例。

试试这个,

var minLimit:uint = 1;
var maxLimit:uint = 50;
var range:uint = maxLimit - minLimit;
var p:Number = Math.ceil(Math.random()*range) + minLimit;

for (p; p < maxLimit; p += 1)
{
    var myCell:Cell = new Cell();
    var xminLimit:uint = 100;
    var xmaxLimit:uint = 400;
    var xrange:uint = xmaxLimit - xminLimit;
    var xp:Number = Math.ceil(Math.random()*xrange) + xminLimit;
    addChild(myCell);
    myCell.x = xp
    myCell.y = xp
    myCell.scaleX = 6
    myCell.scaleY = 6        

}