AS3:在本地共享对象(LSO)中存储自定义类的数组

时间:2011-09-22 21:01:20

标签: actionscript-3 lso

我在存储一个对象数组时遇到问题,所有这些对象都是LSO中的相同自定义类,然后从LSO重新加载该数组,而不会丢失列表中对象的类类型。

我知道如何使用registerClassAlias()函数存储自定义类的单个对象并使用正确的类类型加载它,但我似乎无法将其应用于对象数组。

我正在尝试保存名为messageList的数组。每个元素都是一个自定义类GameMessage,其属性名为gameLevel。加载LSO后,我正在尝试做类似

的操作
trace("0th message is from level " + GameMessage(messageList[0]).gameLevel);

我得到一个例外:

  

TypeError:错误#1034:类型强制失败:无法将Object @ 90fdfa1转换为GameMessage。

我已经使用

注册了GameMessage类
registerClassAlias("GameMessage", GameMessage);

并且一切都有效,而不是我尝试保存/加载单个消息的消息列表。

非常感谢任何有关如何解决此问题的帮助!

1 个答案:

答案 0 :(得分:1)

像The_asMan一样,我认为你不能做自定义类,只有AS3的基本数据类型。您可以在自定义类中执行的操作是设置辅助函数,如fromObject(object)和toObject():类中的Object可帮助您转换它们。