Frage

Ist es möglich, eine Hierarchie von Objekten in Flex, senden die binären Daten an eine URL für die Speicherung / Retrieval auf / von einem Server serialisiert und deserialisiert die Daten der Objekte ursprünglichen Zustand wiederherzustellen?

Ich weiß, es ist möglich, die Objekte in ein XML-Format zu konvertieren (haben versucht, es noch nicht), aber ich bin der Hoffnung, XML zu vermeiden, Parsen und die Objekte manuell neu zu erstellen. Es wäre schön, Funktionalität zu haben, die / deserialisieren Objekte zu einem einfachen binären Format serialisiert werden kann (ich habe etwas ähnliches in der Vergangenheit in Java, wenn auch nicht ganz so leicht, wie ich es mir gewünscht hätte). Die ‚eval‘ -Funktion in Perl ist ähnlich zu dem, was ich suche, sans Code speichern, natürlich.

In Pseudo-Code, hier ist, was ich tun:

private var contentToSave:HBox = new HBox();

private function saveState(event:Event):void {
    var toSave:HBox = this.contentToSave;
    var data:? = /* serialize 'toSave' ActionScript classes to binary data*/;
    sendDataToServer(data, filename);
}
private function restoreState(filename):void {
    var data:? = getDataFromServer(filename);
    var savedData:HBox = /* deserialize binary 'data' to ActionScript classes */;
    this.contentToSave = savedData;
}
War es hilfreich?

Lösung

Versuchen Sie, das JSON-basierte serialization Paket in ascorelib .

  

[...], aber ich hoffe, dass das Parsen von XML zu vermeiden und den Wiederaufbau der Objekte manuell

AS behandelt XML wie jede andere einheimische Art. Seien Sie versichert. XML ist die bevorzugte Art und Weise mit den Daten zu tun Sie werden abziehen und auf einem Server setzen zurück. Natürlich ist die ascorelib Sie eine JSON-Klasse gibt -. So dass Sie das auch aussehen möchten

  

Die 'eval' -Funktion in Perl ist ähnlich zu dem, was ich suche, sans Spar Code, natürlich.

IIRC, eval ist Teil der ECMAScript-Spezifikation (und Sie werden es in Javascript finden). Aber nicht in AS3.0. Es war dort zu einem gewissen Grad in einigen früheren Version (s?), Aber nicht mehr unterstützt wird.

Andere Tipps

Hier finden Sie aktuelle ByteArray .writeObject () . speichert die übergebenen Objekt in AMF-Format in den Byte-Array. Ich habe diese Funktion nicht zu viel verwendet wird, weiß ich nicht genau, welche Art von Objekten kann es serialisiert, aber auf jeden Fall nicht alle.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top