【问题标题】:Spawning a random number of movieclips - function doesn't work?产生随机数量的电影剪辑 - 功能不起作用?
【发布时间】:2013-12-21 14:33:42
【问题描述】:

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

为什么生成的单元格数量可以达到 50 时始终为 1? (因为我将 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;



}

【问题讨论】:

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


    【解决方案1】:

    您需要在循环内移动实例创建代码 (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        
    
    }
    

    【讨论】:

    • 非常感谢!你是最棒的。我不知道必须将变量放在循环中。谢谢!
    猜你喜欢
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多