SharedObjectを使用して文字列と数値を格納するのは簡単なことであり、この種のことにも精通しています。
var sharedObject:SharedObject = SharedObject.getLocal("userData");
var obj:Object = new Object();
obj.prop = "value";
sharedObject.data.userobj= obj;
sharedObject.flush();
ただし、ゲームのステージに関するデータを保持するために定義したクラスGameStageのオブジェクトを保存しようとしています。このタイプのものは機能していないようです:
var sharedObject:SharedObject = SharedObject.getLocal("userData");
var stageOne:GameStage = new GameStage();
stageOne.highScore = 99999;
sharedObject.data.stageOne = stageOne;
sharedObject.flush();
このコードはエラーをスローしませんが、後でステージデータを取得しようとすると、次のようになります。
stageOne = sharedObject.data.stageOne;
このエラーが発生します:
TypeError: Error #1034: Type Coercion failed: cannot convert Object@3d220629 to GameStage.
私の質問は、SharedObjectに正確にどのような種類のデータ型を格納できるかということだと思います。私がオンラインで調べたところはどこでも、「Flashで使用できるものなら何でも」という質問に答えていますが、これはあまり説明的ではありません。明らかに、私のGameStageクラスはFlashでも機能します。SharedObjectからデータを取得することについて、私が気付いていないことはありますか?
私の予測では、ステージデータをこの方法で保存することはできません。その場合、誰かがデータを保存するための代替方法を提案できますか?