Ich habe eine praktische Auflistungsklasse in meinem Flex-Projekt namens HashMap, das im Wesentlichen ein Wrapper um das flash.utils.Dictionary mit einer Reihe von Bequemlichkeitsmethoden und einem hinzugefügten (synchronisierten) ist ArrayCollection, damit ich die HashMap an bindbare Steuerelemente übergeben kann, die eine ArrayCollection benötigen. Das alles funktioniert gut.Richtig flashen.utils.Dictionary zu einem SharedObject serialisieren
Was nicht funktioniert, finde ich gerade heraus, setzt diese HashMap in einem lokalen SharedObject.
die Klasse Registrierung verursacht es gespeichert und wieder als die richtige Art zu werden, und das Arraycollection Mitglied kommt wieder ganz gut, aber das Wörterbuch seine Daten nicht speichern ..
Hier ist ein Ausschnitt:
[RemoteClass(alias="com.tamedtornado.collections.HashMap")]
public class HashMap extends Proxy
{
public var hash:Dictionary = new Dictionary();
// Keeps an array collection as well so we can give this to a data bound control
[Bindable]
public var collection:ArrayCollection = new ArrayCollection();
Also das ist das relevante Zeug. Wie wird vorgegangen, um das Dictionary korrekt zu speichern? Ich muss die ArrayCollection tatsächlich vorübergehend machen, da ich gerade jetzt, wenn die SO gelöscht wird, eine weitere Kopie der (im Dictionary eindeutig codierten) Daten erhalte.
Das hat wahrscheinlich einen upmod verdient :) Ich hatte einige echte Probleme mit der Serialisierung in ActionScript, hauptsächlich aufgrund der Tatsache, dass die entsprechende Klasse nicht in die SWF kompiliert wurde (nur mit einem Cast), es wurde sehr verwirrend für eine Weile. – inferis