我试图将对象添加到显示列表中,但是对于我的项目来说,如果我能运行一段代码,将5个对象中的一个放到屏幕上,那就太好了。目前,如果我输入对象的名称,代码就会工作,但是如果我试图通过变量给它类名,代码就会失败。有什么想法吗?
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;有什么想法吗?任何帮助都是非常感谢的。
发布于 2017-09-24 17:16:26
您不能将变量声明为来自的变量,因为变量声明是编译时操作,而数组项在运行时可用,即稍后的。
而且你不需要这么做。只需将其声明为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);
}https://stackoverflow.com/questions/46392549
复制相似问题