0

我正在制作一个 Flash 游戏,我需要一种方法来存储有关世界的大量数据,例如在整个游戏中、所有游戏玩法之间保持不变的数据。许多值(整数、浮点数、字符串),按对象层次结构分组。关键是在开发过程中易于编辑(如普通文本文件或 XML),并且在读取数据时性能开销为零,并且在启动时开销最小。

问题可以简化为:如何将所有字段都填写在 SWF 文件中的即用型 ActionScript 对象(无需对其运行 init 函数)?

首先想到的是 MXML 是一种方式,但我不知道我应该如何使用它来完成工作 - 更不用说可能的开销(我读过 MXML 很慢)。甚至可以在不需要解析事物的情况下这样做吗?如果不是,最好的选择是什么?XML?JSON?自定义格式和解析器功能?

4

1 回答 1

0

使您要保存的类实现IExternalizable(并且不要忘记实际编写必要的函数;))。使用registerClassAlias使 Class 可用于 AMF 编码。

然后将类写入 ByteArray(使用 ByteArray.writeObject())并压缩它。之后,将 ByteArray 写入文件。

读取文件时,将内容读取到 ByteArray,使用 decompress(),然后使用“readObject() as YOURCLASS”来取回您的实例。

如果您愿意,您可以省略压缩,但根据存储的数据,它会产生巨大的差异。在我目前正在做的一个项目中,未压缩的文件大约需要 6MB,压缩版本只有 178KB。

于 2013-05-17T05:31:58.007 回答