2016-04-16 3 views
0

にアクセスしようとしていることは、クラスのコードを動的に.But私はコードを参照してください。問題とこだわっています。:...私は</p> <p>にサウンドを再生する必要があり、ステージ上の3つのボタンのすべてのボタンを私が持っている変数の値

私は助けが必要です! fla link & class link

私は変数だけでなく、変数内の文字列を取得したい。

package 
{ 
    import flash.display.MovieClip; 
    import flash.events.MouseEvent; 

    public class CustumClass extends MovieClip 
    { 
    private var R1:String ="im a string inside R1"; 
    private var R2:String ="im a string inside R2"; 
    private var R3:String = "im a string inside R3"; 

    private var btns:Array; 
    private var link:String; 

     public function CustumClass() 
     { 
      // constructor code 
      btns = new Array(r1,r2,r3); //___ buttons on stage 
      onLoop(); 

     } 
     private function onLoop():void 
     { 
      for (var i:int = 0; i<btns.length; i++) 
      { 
       btns[i].addEventListener(MouseEvent.CLICK,handleBtn); 
      } 
     } 

     private function handleBtn(e:MouseEvent):void 
     { 
      // ____ i want to get the string inside variable 

      link = e.target.name.toUpperCase(); 
      trace (link); 
     } 
    } 

} 

答えて

0

代わりのArray

private var btns:Array; 

次に、あなたがそれに関連付けるStringと一緒にボタンにそれぞれの参照を追加Dictionary

private var buttons:Dictionary = new Dictionary(); 

を使用して、あなたのボタンを保存します

// constructor code 

buttons[r1] = "text for r1"; 
buttons[r2] = "text for r2"; 
buttons[r3] = "text for r3"; 

onLoop(); 

キーを反復処理できます。

private function onLoop():void 
{ 
    for (var button:Object in buttons) 
    { 
     button.addEventListener(MouseEvent.CLICK,handleBtn); 

     // if above fails, try something like 
     IEventListener(button).addEventListener(MouseEvent.CLICK,handleBtn); 
    } 
} 

あなたは魔法のようにあなたのコードの作品を​​ありがとうございキー

private function handleBtn(e:MouseEvent):void 
{ 
    trace (buttons[e.currentTarget]); 
} 
+0

で値を取得することができます。私はちょうど配列を使用してコードを動作させるための他の方法が存在するかどうかを知りたいです。 –

+0

@AyoubHit仕事に応じてツールを選択してください。これは 'Array'を使って行うことができますが、このようにするのは意味がありません。問題に「配列」を付けた解を強制しないでください。あなたの最善の策は 'Array'も' Dictionary'も使うのではなく、ボタンのクラスを定義することです。この方法では、各ボタンが独自の 'String'を知っているので、ボタンから' String'への関連付けを作成するためにデータ構造を必要としません。 – null

+0

ありがとうございました。あなたが意味することを理解しています –