我知道用 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 检索数据的事情?
我的预测是我将无法以这种方式存储我的舞台数据。如果是这种情况,有人可以提出另一种保存数据的方法吗?