2017-09-24 1 views
0

Ich versuche, Objekte zum Displaylist hinzuzufügen, aber für mein Projekt wäre es gut, wenn ich einen Code ausführen könnte, der 1 von 5 Objekten auf dem Bildschirm platzieren könnte. Derzeit funktioniert der Code, wenn ich den Namen des Objekts einfüge, aber es schlägt fehl, wenn ich versuche, ihm den Klassennamen über eine Variable zu geben. Irgendwelche Ideen?Hinzufügen von Objekten zur DisplayList mit der Variablen

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; 

Wirft diesen Fehler:

1086: Syntaxfehler: Semikolon vor LEFTBRACKET erwartet. obwohl

arbeitet Dieser Code:

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

Irgendwelche Ideen? Jede Hilfe wird geschätzt.

Antwort

2

Sie können nicht variabel als etwas von Array erklären, weil Variablendeklaration ein Compiler-Betrieb ist, während Array Elemente zur Laufzeit zur Verfügung stehen, die später ist.

Auch müssen Sie nicht. deklarieren Sie es einfach als Display, oder sie überhaupt nicht erklären, ist es nicht zwingend erforderlich ist, sind Sie nicht verpflichtet, und es wird in Ordnung sein:

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); 
} 
Verwandte Themen