For 循环不适用于在 Adobe Animate CC 中创建多个矩形
For loop won't work in creating multiple rectangles in Adobe Animate CC
我正在使用 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;
}
您的代码存在一些问题。
我假设您正在扩展 Container
,以便您可以向其中添加 children。这就是为什么你使用 this.addChild()
而不是像 stage.addChild()
这样的东西,对吧?
您在创建形状时覆盖了迭代器变量 i
。我建议使用不同的名称,例如 square
或 child
.
您正在递增 this
的 x
位置,因此它会将所有方块添加到同一位置,然后只需将您的容器移动 50px。所有 children 仍将彼此重叠。您应该将其更改为 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;
}
这是一个快速 fiddle:http://jsfiddle.net/lannymcnie/vphj9qL0/
干杯。
我正在使用 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;
}
您的代码存在一些问题。
我假设您正在扩展 Container
,以便您可以向其中添加 children。这就是为什么你使用 this.addChild()
而不是像 stage.addChild()
这样的东西,对吧?
您在创建形状时覆盖了迭代器变量
i
。我建议使用不同的名称,例如square
或child
.您正在递增
this
的x
位置,因此它会将所有方块添加到同一位置,然后只需将您的容器移动 50px。所有 children 仍将彼此重叠。您应该将其更改为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;
}
这是一个快速 fiddle:http://jsfiddle.net/lannymcnie/vphj9qL0/
干杯。