0

我在存储对象数组时遇到问题,所有这些对象都是 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);

如果我尝试保存/加载单个消息而不是消息列表,那么一切正常。

任何有关如何解决此问题的帮助将不胜感激!

4

1 回答 1

1

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

于 2011-09-23T04:15:00.837 回答