For 循环无法在 Adobe Animate CC 中创建多个矩形
Posted
技术标签:
【中文标题】For 循环无法在 Adobe Animate CC 中创建多个矩形【英文标题】:For loop won't work in creating multiple rectangles in Adobe Animate CC 【发布时间】:2017-01-07 12:57:14 【问题描述】:我正在使用 Adobe 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;
【问题讨论】:
【参考方案1】:您的代码存在一些问题。
我假设您正在扩展 Container
,因此您可以向其中添加子级。这就是为什么你使用this.addChild()
而不是stage.addChild()
之类的东西,对吧?
在创建形状时,您将覆盖迭代器变量 i
。我建议使用其他名称,例如 square
或 child
。
您正在增加this
的x
位置,因此它会将所有方块添加到同一位置,然后只需将您的容器移动50px。所有的孩子仍然会互相压倒。你应该把它改成child.x
。
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/
干杯。
【讨论】:
谢谢兰尼。是的,这就是我所追求的。非常感谢您抽出宝贵的时间做出很好的解释。以上是关于For 循环无法在 Adobe Animate CC 中创建多个矩形的主要内容,如果未能解决你的问题,请参考以下文章
如果我不断循环播放 Adobe Animate (Flash) 视频,会导致内存问题吗?
无法在 Adobe Edge animate CC 中创建圆形阴影
如何播放动画,然后在悬停时反向播放,再次开始播放,直到在 Adobe Animate (Flash) 中使用悬停结束?
如何在 Adobe Animate 中悬停时反向播放动画?