2017-09-24 4 views
0

개체를 표시 목록에 추가하려고 시도했지만 프로젝트에 대해 5 개의 개체 중 1 개를 화면에 배치 할 수있는 코드를 실행할 수 있다면 좋을 것입니다. 현재 코드는 객체의 이름을 넣으면 작동하지만 변수를 통해 클래스 이름을 지정하려고하면 실패합니다. 어떤 아이디어?변수를 사용하여 DisplayList에 개체 추가

1086 : 구문 오류 : LEFTBRACKET 전에 세미콜론을 기대

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; 

이 오류가 발생합니다.

이 코드는하지만 작동합니다

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

어떤 아이디어? 도움을 주시면 감사하겠습니다. 변수 선언은 컴파일시 작업이기 때문에 배열 항목 런타임에 사용할 수있는 동안

답변

2

당신은 나중에 인, 배열 뭔가 같은 변수를 선언 할 수 없습니다.

또한, 필요하지 않습니다. 그냥으로 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); 
} 
관련 문제