Ich weiß es einfach ist, zu speichern, Strings und Zahlen mit einem Shared, und ich bin auch mit dieser Art der Sache vertraut:Welche Datentypen unterstützt ein SharedObject?
var sharedObject:SharedObject = SharedObject.getLocal("userData");
var obj:Object = new Object();
obj.prop = "value";
sharedObject.data.userobj= obj;
sharedObject.flush();
Allerdings bin versucht, ich ein Objekt der Klasse Games zu speichern, eine Klasse, die ich definiert habe, um Daten über Phasen in meinem Spiel zu halten. Diese Art der Sache scheint nicht zu funktionieren:
var sharedObject:SharedObject = SharedObject.getLocal("userData");
var stageOne:GameStage = new GameStage();
stageOne.highScore = 99999;
sharedObject.data.stageOne = stageOne;
sharedObject.flush();
Dieser Code keinen Fehler werfen, aber wenn ich versuche, später die Bühne zum Abrufen von Daten, etwa so:
stageOne = sharedObject.data.stageOne;
I Fehler:
TypeError: Error #1034: Type Coercion failed: cannot convert [email protected]20629 to GameStage.
Ich denke, meine Frage ist: genau welche Art von Datentypen können in einem SharedObject gespeichert werden? Überall, wo ich online gesucht habe, habe ich diese Frage mit "alles, was in Flash verwendet werden kann" beantwortet, was nicht sehr aussagekräftig ist - offensichtlich funktioniert meine GameStage-Klasse auch in Flash. Gibt es etwas über das Abrufen von Daten aus dem SharedObject, das mir nicht bekannt ist?
Meine Vorhersage ist, dass ich meine Stage-Daten nicht auf diese Weise speichern kann. Wenn dies der Fall ist, könnte jemand eine alternative Methode zum Speichern der Daten vorschlagen?