2009-08-17 30 views
1

名前の変数を使用してオブジェクトのメンバ変数にアクセスする方法を教えてください。Flex:名前に変数を使用してメンバ変数にアクセスする

例:

エントリオブジェクトは、プロパティ1、2、3、4を有する5 Iはループを持っている場合、通常、私は、しかし

var i : int = Entries.1; 
var i : int = Entries.2; 

によってそれらにアクセスする

for (var j : int = 1; j < 6; j++){ 
    trace(Entries[j]); 
} 

は機能しません。

Entries.(j) 
Entries.j 

もありません。

どのような方法がありますか?

Entries.hasOwnProperty("j") 

メンバーが存在するかどうかを確認することもできません。

ありがとうございます!あなたは文字列としてそれを「J」を送っているので

+0

どのようにエントリオブジェクトを作成していますか?私のテストでは、Entries [j]を使って数値的に名前のついたプロパティにアクセスできます。 – David

+0

を文字列に変換しないでください。 Entriesオブジェクトは、ZendAMF経由でバックエンドから取得されます。これは、Flexの標準オブジェクトにマップされ、いくつかのメンバーが割り当てられます。デバッグモードでは、[1]、[2]、[3]をオブジェクトのメンバーとして見ることができます。 –

答えて

3
Entries.hasOwnProperty("j") 

が動作しない、あなたはので、あなたが探している番号を表す文字列に整数変数jを変換する必要があります。例:

Entries.hasOwnProperty(j.toString()); 

だからあなたのオブジェクトからプロパティを抽出するために、あなたが行うことができます:

for(var j:int = 1; j < 6; j++) 
{ 
    trace(Entries[j.toString()]); 
} 
+0

ありがとう!私はそれを文字列に変換する必要があるとは思わなかった。今は完璧に動作します。 –

関連する問題