2009-07-10 8 views
0

Hey, j'ai une question sur les propriétés de réfraction d'un objet actionscript.Objet Actionscript référençant à partir d'une chaîne AS 3.0

Si j'ai l'objet suivant nommé "groupes" ...

group1 
    item1 = sampledata1 
    item2 = sampledata2 
    item3 = sampledata3 
group2 
    item1 = sampledata4 
    item2 = sampledata5 
    item3 = sampledata6 

J'accès groupe1/item2 en tapant "groups.group1.item2"

Comment devrais-je créer une méthode, où je peux passer la clé sous forme de chaîne, et récupérer les données sur ce nœud. Par exemple

groups.group1.item2 retourneraient sampledata2

et

getItem ("group1.item2"); retournerait également sampledata2

Je pense que cela est possible en utilisant eval(), mais je crois que cela a été supprimé dans AS 3.0 que j'utilise. Y a-t-un autre moyen de faire ça? Merci.

Répondre

3

Utilisez les objets comme vous utiliseriez des hachages.

Vous pouvez initialiser les objets de cette façon:

groups = 
{ 
    "group1": 
    { 
     "item1":sampledata1, 
     "item2":sampledata2 
    }, 
    "group2": 
    {"item1":sampledata1... 
    } 
}; 

ou à l'aide entre parenthèses:

groups = new Object(); 
groups["group1"] = new Object(); 
groups["group1"]["item1"] = sampledata1; 

L'accès se fait comme ceci:

groups["group1"]["item1"] 

espoir qui aide.

+0

bonne réponse ... encore, vous n'avez pas besoin d'être conforme à JSON ... ce que je veux dire, plutôt que d'utiliser des chaînes comme clés, vous pouvez utiliser des identifiants ... ie {"clé": } équivalent à {key: value} ... et peut-être compléter votre réponse avec une déclaration claire: someObject ["someProperty"] est équivalent à someObject.someProperty, sauf que ce dernier est plus rapide si le type de someObject est connu, et someProperty est défini par la classe de someObject ... greetz – back2dos

+0

oui, vous avez raison, je ne sais pas ce que je pensais quand j'ai tapé cela. – CookieOfFortune

+0

oh oui, je faisais un peu de ce code en ce moment et ma propriété avait des espaces dedans, donc je ne pense pas que tu puisses faire ça avec la notation non-string. – CookieOfFortune

Questions connexes