2009-08-17 9 views
1

Comment puis-je accéder à la variable membre d'un objet en utilisant une variable dans le nom.Flex: accès à une variable membre en utilisant une variable dans le nom

Exemple:

Entrées objet a des propriétés 1, 2, 3, 4, 5. Normalement, je les accès par

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

Cependant, si j'ai une boucle

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

ne fonctionne pas.

Entries.(j) 
Entries.j 

non plus.

Quel est le chemin à parcourir?

Entries.hasOwnProperty("j") 

ne fonctionne pas non plus pour vérifier si le membre existe.

Merci!

+0

Comment créez-vous l'objet d'entrées? Dans mes tests, je peux très bien accéder aux propriétés numériquement nommées en utilisant Entrées [j]. – David

+0

sans les convertir en une chaîne? L'objet Entries provient du backend via ZendAMF. Il est mappé à un objet standard dans Flex avec quelques membres. En mode débogage, je peux les voir avec [1], [2], [3] comme membres de l'objet. –

Répondre

3
Entries.hasOwnProperty("j") 

ne fonctionne pas parce que vous l'envoyez « j » comme une chaîne, vous devez convertir la variable entier j à une chaîne, ce qui représente donc le numéro que vous recherchez. Par exemple:

Entries.hasOwnProperty(j.toString()); 

Donc, pour extraire la propriété de votre objet, vous pouvez le faire:

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

Merci beaucoup! Je n'avais pas besoin de le convertir en String. Fonctionne parfaitement maintenant. –

Questions connexes