変数

2017-09-24 4 views
0

を使用してDisplayListにオブジェクトを追加していますが、表示リストにオブジェクトを追加しようとしましたが、私のプロジェクトでは1つのコードを実行して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:構文エラー:LEFTBRACKET前にセミコロンを期待。

このコードは、しかし作品:

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