Je crée une application Adobe AIR et je stocke un dictionnaire dans mon SharedObject. Quelque chose dans le sens de ce qui est mentionné here.Longueur de la propriété de mon dictionnaire sérialisé à stocker dans un SharedObject
Mais pourquoi la longueur de mon dictionnaire est-elle toujours nulle? Je finis par devoir suivre manuellement la longueur qui semble fonctionner mais ne me remplit pas de confiance.
Aussi, quelqu'un peut-il expliquer quand exactement readExternal et writeExternal sont appelés? Je trouve qu'ils sont appelés plusieurs fois (pour ce qui me semble inutile). Comme c'est un dictionnaire, l'ajout de la même valeur plusieurs fois ne pose pas de problème mais encore une fois, je me demande si j'ai mis quelque chose de mal ici pour déclencher cela.
C'est ce que j'ai un
public class SharedObjectDictionary implements IExternalizable {
private var _dictionary:Dictionary;
private var _length:int;
public function addItem and removeItem
{
... just adds/removes to my _dictionary ...
... and keeps track of the length ...
}
public function readExternal(input:IDataInput):void
{
var count:int = input.readInt();
for (var i:Number = 0;i<count;i++)
{
var key:String = input.readObject();
var val:String = input.readObject();
addItem(key,val);
}
}
public function writeExternal(output:IDataOutput):void
{
output.writeInt(_length);
for (var key:Object in dictionary)
{
output.writeObject(key);
output.writeObject(dictionary[key]);
}
}
}
Quand je fais l'appel à stocker ce SharedObject en tant que tels
var so:SharedObject = SharedObject.getLocal("xxxx");
so.data["xxxxx"] = instance of the SharedObjectDictionary above;
so.flush();
so.close();
so = null;
Je trouve que readExternal est appelée une fois et writeExternal obtient appelé 3 fois.
Merci!
ah a donc du sens pour le null! Voir ma question éditée avec plus de code démontrant ce que je fais. –
Juste un conseil: j'aime vraiment le 'LinkedMap' trouvé dans le paquetage as3commons-collection [as3commons.org] (http://www.as3commons.org). Il s'agit essentiellement d'une combinaison d'un dictionnaire et d'un tableau, de sorte que la "longueur" - avec beaucoup d'autres choses utiles - est déjà prise en compte. –
sympa, merci T. –