使用变量将对象添加到 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);
}
我正在尝试将对象添加到显示列表,但对于我的项目来说,如果我可以 运行 一段代码可以将 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);
}