2010-09-28 5 views
1

En classe d'objets actionscript peut agir comme une collection qui conserve la clé, des combinaisons de valeurs:AS3 <Key,Value> Collection

var o:Object = new Object(); 
o["a"] = 1; 

Mais quand je suis en train de l'étendre et d'ajouter des fonctionnalités personnalisées:

var mo:MyObject = new MyObject(); 
mo["a"] = 1; 

Je reçois ceci:

ReferenceError: Error #1056: Cannot create property a on MyObject.

Comment puis-je résoudre ce problème? Merci.

Répondre

3

Vous devez définir la classe MyObject comme dynamic class.

package foo.bar { 
    public dynamic class MyObject { 
    } 
} 

Une classe dynamique prend en charge le comportement Object de <String,Object> - pour obtenir la carte <Object,Object> arbitraire, vous devez étendre Dictionary au lieu (encore une fois, ce qui rend la classe dynamique).

+0

Super, merci. Une question un peu sans rapport, mais existe-t-il un moyen d'obtenir un nombre de propriétés (clés) sans itération à travers l'objet entier? –

+1

http://stackoverflow.com/questions/284947/how-do-i-find-the-length-of-an-associative-array-in-actionscript-3-0 –