【问题标题】:For loop won't work in creating multiple rectangles in Adobe Animate CCFor 循环无法在 Adob​​e Animate CC 中创建多个矩形
【发布时间】:2017-01-07 12:57:14
【问题描述】:

我正在使用 Adob​​e Animate CC(以前称为 Flash Professional CC),我正在尝试调整以下代码 sn-p 以便它创建多个矩形。

var shape = new createjs.Shape(new createjs.Graphics().beginFill("#ff0000").drawRect(5,5,100,100));
this.addChild(shape);

然后我对此进行了调整并将其放入我认为可以复制对象的 for 循环中。下面的代码只创建一个矩形?

for (i = 0; i < 10; i++) {
    var i = new createjs.Shape(new createjs.Graphics().beginFill("#ff0000").drawRect(5,5,30,30));
    this.addChild(i);

    // Move object so that they don't lie on top of each other
    this.x += 50;
}

【问题讨论】:

    标签: canvas html5-canvas jquery-animate adobe easeljs


    【解决方案1】:

    您的代码存在一些问题。

    我假设您正在扩展 Container,因此您可以向其中添加子级。这就是为什么你使用this.addChild() 而不是stage.addChild() 之类的东西,对吧?

    1. 在创建形状时,您将覆盖迭代器变量 i。我建议使用其他名称,例如 squarechild

    2. 您正在增加thisx 位置,因此它会将所有方块添加到同一位置,然后只需将您的容器移动50px。所有的孩子仍然会互相压倒。你应该把它改成child.x

    3. 1234563将其更改为 child.x = i * 50 之类的内容。

    这是一个代码 sn-p。

    for (i = 0; i < 10; i++) {
        var child = new createjs.Shape(new createjs.Graphics().beginFill("#ff0000").drawRect(5,5,30,30));
        this.addChild(child);
    
        // Move object so that they don't lie on top of each other
        child.x = i * 50;
    }
    

    这是一个快速的小提琴:http://jsfiddle.net/lannymcnie/vphj9qL0/

    干杯。

    【讨论】:

    • 谢谢兰尼。是的,这就是我所追求的。非常感谢您抽出宝贵的时间做出很好的解释。
    猜你喜欢
    • 2017-04-01
    • 2017-01-08
    • 2017-06-14
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 1970-01-01
    • 2021-10-20
    相关资源
    最近更新 更多