使用变量将对象添加到 DisplayList

Adding objects to the DisplayList using variable

我正在尝试将对象添加到显示列表,但对于我的项目来说,如果我可以 运行 一段代码可以将 5 个对象中的 1 个放置到屏幕上,那就太好了。目前,如果我输入对象的名称,代码就可以工作,但如果我尝试通过变量给它 class 名称,代码就会失败。有什么想法吗?

var sides:Array = new Array(Edge, Edge, Edge, Edge, Edge, Edge); 

var side1:sides[0] = new sides[0]();
centerHex.addChild(side1);
side1.y = side1.y - 20;

引发此错误:

1086: 语法错误:左括号前需要分号。

这段代码虽然有效:

var side1:Edge = new Edge();
centerHex.addChild(side1);
side1.y = side1.y - 20;

有什么想法吗? 感谢任何帮助。

您不能将变量声明为 Array 中的内容,因为变量声明是编译时操作,而 Array 项可在运行时间,即 later.

另外,您不需要。只声明为DisplayObject,或者根本不声明,不是强制的,你没有义务,这样就可以了:

var Sides:Array = [Edge, Edge, Edge, Edge, Edge, Edge]; 

for (var i:int = 0; i < Sides.length; i++)
{
    var SideClass:Class = Sides[i];
    var aSide:DisplayObject = new SideClass;

    var anAngle:Number = i * Math.PI / 3;

    aSide.x = 100 * Math.cos(anAngle);
    aSide.y = 100 * Math.sin(anAngle);
    aSide.rotation = anAngle * 180 / Math.PI;

    centerHex.addChild(aSide);
}