0

我试图将对象添加到显示列表,但对于我的项目,如果我可以运行一段代码,将 5 个对象中的 1 个放置到屏幕上,那就太好了。目前,如果我输入对象的名称,代码可以工作,但如果我尝试通过变量为其提供类名,则代码会失败。有任何想法吗?

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;

有任何想法吗?任何帮助表示赞赏。

4

1 回答 1

2

您不能将变量声明为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);
}
于 2017-09-24T17:16:26.443 回答