2011-12-17 6 views
0

コンポーネントIDを関数に渡してから、idを変数として使用しています。変数を変数として使用する

例えば私が渡しているidがある - 私は、変数のトレースを行うとき、私はuser_dg

問題は持っているのである - this[dg_id]

私が取得 - Application0.Canvas662.Canvas878.DataGrid888を、私がそれをしたいとき - user_dg

どうすれば実際のコンポーネントIDを出力できますか?

+3

この[dg_id] .idを試しましたか?フレックスを手に入れてからしばらくしていましたが、それは簡単なことかもしれません... –

+0

lolはそのトリックをしました。ありがとう – Adam

答えて

1

コメントに基づきます。あなたが間違ったことを関数に渡しているように思えます。おそらく実際のコンポーネントの名前ではなくコンポーネントのインスタンスです。

あなたが私たちに方法またはそれを呼び出す方法を表示していないので、少し曖昧です。しかし、このようなもの:

public function myFunction(component:UIComponent):void{ 
    trace(component); 
    trace(component.id); 
} 

実際のコンポーネントではなく、コンポーネントのインスタンスが必要です。この関数を次のように呼び出すことができます。

myFunction(myDataGrid); 
myFunction(myList); 
myFunction(myComboBox) 

IDを渡す場合は、次のように指定します。それは珍しいだろうが、あなたはこのような何かがあります

public function myFunction(componentID:String):void{ 
trace(this[componentID]); 
trace(componentID); 
} 

をそして、あなたはこのようにそれを呼び出すことができます。

myFunction('stringThatRepresentsAVariableName'); 
myFunction(myDataGrid.id); 
etc.. 

あなたがする必要がある実際のインスタンス上でIDを使用することは非常にまれですプロセス。インスタンスを必要とすると、将来のこの時点でこのコードを維持する必要がある人のためのより良い文書が提供されます。文字列IDを要求するには、その関数が子としてIDを持つ同じコンポーネントにある必要があります。将来再利用やリファクタリングの機会が減る可能性があります。

関連する問題