2012-05-03 6 views
0

ActionScriptのオブジェクトおよびイベントリスナー

my_obj['key'].addEventListener(Blah Blah); 

のように私は長い間(ISH)のリストを持って、私はオブジェクト

var my_obj = new Object(); 
my_obj['key'] = value; 

値にイベントリスナーを追加する方法はありますがあると(レイアウトは、セクションごとに大きく異なるので、actionscriptを使ってレイアウトを作成するのではなく、タイムラインで行うほうが意味があります)。

button1 = plays "frame label 1" 
button2 = plays "frame label 2" 

というように....ので、私はちょうどその時、私はちょうどすべてのボタンに1つのイベントハンドラを持ってもらうためにターゲットを使用することができ、アレイ

obj["button1"] = "framelabel1" 
arr.push(obj); 

ですべてを保存することを考えていました。フレームラベル値...

+0

実際に質問されたことを推測しなくてもよろしいですか? :) –

答えて

1

はい、あなたは正確にあなたが言及した正確な方法で求めているものを行うことができ、ここでの例です:

var value:Sprite = new Sprite(); 

var my_obj = new Object(); 
my_obj['key'] = value; 

だから、呼び出し:

my_obj['key'].addEventListener(Event.ENTER_FRAME, _onEnterFrameHandler); 

が正確です電話と同じ:

value.addEventListener(Event.ENTER_FRAME, _onEnterFrameHandler); 
1

質問は私にとってはむしろあいまいです。私の推測では、値が設定されるたびにトリガーされるものが必要であるということです。このような場合は、カスタムクラスを作成し、そこでgetter-setterプロパティを宣言する必要があります。例えば

package 
{ 
    import flash.display.Sprite; 

    public class TestAccessor extends Sprite 
    { 
     private var someVarValue:uint = 0; 

     public function TestAccessor() 
     { 
      super(); 
     } 

     public function get someVar():uint 
     { 
      return someVarValue; 
     } 

     public function set someVar(value:uint):* 
     { 
      someVarValue = value; 
      // this is the place where someVar is set. 
      // do whatever else you like here, 
      // you may choose to dispatch an event from here if you need. 
     } 

    } 
} 

戻るAS1-AS2時代に、私たちはそのためのwatch()addProperty()を持っていましたが、これらの時間がなくなって以来、長いです。良いのために。 :)

関連する問題