1

新手问题:

如果我在一个循环中创建多个形状对象,例如:

var i:int; 
for (i = 0; i < 3; i++) {
    var circle:Shape = new Shape();
    circle.graphics.beginFill(color);
    circle.graphics.drawCircle(100,100, radius);
    circle.graphics.endFill();
    addChild(circle);   
}

然后我怎样才能分别调用这些不同的形状,以便我可以操纵它们的属性?在我看来,他们都会有相同的名字?

4

3 回答 3

1

实际上,您可以只拥有一个对象数组(或向量),因此您不会依赖于当前的显示列表。

var i:int; 
var circleArray:Array = new Array();
for (i = 0; i < 3; i++) {
    var circle:Shape = new Shape();
    circleArrayList.push(circle);
    circle.graphics.beginFill(color);
    circle.graphics.drawCircle(100,100, radius);
    circle.graphics.endFill();
    addChild(circle);   
}
//And then access them with
for(i = 0; i < circleArray.length, i++)
{
    circleArrayList[i].x = 15 * i;
}
//Or
foreach(var circle:DisplayObject in circleArray)
{
    circle.x = 15 * i;
}
于 2013-08-10T19:14:14.837 回答
1

您可以通过它们的索引(它们在舞台上的顺序)访问它们。所以像:

DisplayObject(getChildAt(1)).x = 100; // Where the 1 is the index (starting at 0)
于 2013-08-10T18:47:42.770 回答
-1
for(int i=0;i<3;i++)
{
class x =new class(i);
x.print()
}
于 2013-08-14T21:49:46.973 回答