Canvas 对于循环赢得';在Adobe Animate CC中创建多个矩形是不可行的

Canvas 对于循环赢得';在Adobe Animate CC中创建多个矩形是不可行的,canvas,html5-canvas,jquery-animate,adobe,easeljs,Canvas,Html5 Canvas,Jquery Animate,Adobe,Easeljs,我正在使用Adobe Animate CC(以前的Flash Professional CC),我正在尝试调整以下代码片段,以便它创建多个矩形 var shape = new createjs.Shape(new createjs.Graphics().beginFill("#ff0000").drawRect(5,5,100,100)); this.addChild(shape); 然后我对它进行了调整,并将其放入一个for循环中,我认为该循环可以用于复制对象。下面的代码只创建一个矩形 fo

我正在使用Adobe Animate CC(以前的Flash Professional CC),我正在尝试调整以下代码片段,以便它创建多个矩形

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;
}
(i=0;i<10;i++)的
{
var i=new createjs.Shape(new createjs.Graphics().beginll(#ff0000”).drawRect(5,5,30,30));
本.addChild(i);
//移动对象,使它们不会相互重叠
这个.x+=50;
}

您的代码存在一些问题

我假设您正在扩展
容器
,以便可以向其中添加子项。这就是为什么要使用
This.addChild()
而不是类似于
stage.addChild()的东西,对吗

  • 创建形状时,您正在覆盖迭代器变量
    i
    。我建议使用不同的名称,如
    square
    child

  • 您正在增加
    this
    x
    位置,因此它将在同一位置添加所有方块,然后只需将容器移动50px。所有的孩子仍然会在一起。您应该将其更改为
    child.x

  • 一旦这样做了,它仍然不起作用,因为您正在将每个形状从
    0
    递增到
    50
    ——因此它们仍然彼此重叠。将其更改为类似于
    child.x=i*50

  • 下面是一段代码片段

    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;
    }
    
    (i=0;i<10;i++)的
    {
    var child=new createjs.Shape(new createjs.Graphics().beginll(“#ff0000”).drawRect(5,5,30,30));
    这个.addChild(child);
    //移动对象,使它们不会相互重叠
    child.x=i*50;
    }
    
    这里有一把快速小提琴:


    干杯。

    您的代码有一些问题

    我假设您正在扩展
    容器
    ,以便可以向其中添加子项。这就是为什么要使用
    This.addChild()
    而不是类似于
    stage.addChild()的东西,对吗

  • 创建形状时,您正在覆盖迭代器变量
    i
    。我建议使用不同的名称,如
    square
    child

  • 您正在增加
    this
    x
    位置,因此它将在同一位置添加所有方块,然后只需将容器移动50px。所有的孩子仍然会在一起。您应该将其更改为
    child.x

  • 一旦这样做了,它仍然不起作用,因为您正在将每个形状从
    0
    递增到
    50
    ——因此它们仍然彼此重叠。将其更改为类似于
    child.x=i*50

  • 下面是一段代码片段

    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;
    }
    
    (i=0;i<10;i++)的
    {
    var child=new createjs.Shape(new createjs.Graphics().beginll(“#ff0000”).drawRect(5,5,30,30));
    这个.addChild(child);
    //移动对象,使它们不会相互重叠
    child.x=i*50;
    }
    
    这里有一把快速小提琴:


    干杯。

    谢谢兰尼。是的,那就是我想要的。谢谢你花时间给我解释。谢谢兰尼。是的,那就是我想要的。我感谢你花时间给我解释清楚。