![](/img/trans.png)
[英]Save and Load current frame in Actionscript 3 (Adobe Flash AIR)
[英]How to save and load objects in Flash Adobe Air
我觉得自己在这方面还不够深入-我需要找出一种方法,允许用户在我正在制作的外太空游戏中保存他们的星系。 在最基本的级别上,我需要将随机生成的星系(这是自定义类的实例)写入磁盘,然后再从磁盘中读取它。 我之前没有使用过Air的文件流功能,但遇到了一些麻烦。 我的代码:
public function saveGame(e:MouseEvent):void
{
trace("save");
var file:File = File.desktopDirectory.resolvePath("test.sv");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeObject(gal);
fileStream.close();
}
public function loadGame(e:MouseEvent):void
{
trace("load");
var file:File = File.desktopDirectory.resolvePath("test.sv");
if (file.exists)
{
var obj:Object;
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
obj = fileStream.readObject();
fileStream.close();
trace(obj);
}
}
对象“ gal”是我的星系,并且我已经验证它是对象的有效实例(它包含子对象并且包含许多变量),但是由于某种原因,在桌面上创建的文件只有1个字节-显然太小了包含任何信息。
当我在第二个函数中跟踪对象时,它为null。
在此方面的任何帮助将不胜感激,因为很难为像我这样的初学者找到清楚解释的信息。
感谢您的任何见解。
我认为我们只能序列化动态对象,并将其另存为json。 像XML,Array,Object,dictionary可以做到这一点。 确保其元素是基本类型,并且动态类实例可以相互关联。
为什么不保存一些XML或您可以读入并解析为对象的内容呢?
之前已经问过类似的问题。 查看答案: IExternalizable(as3) , 保存应用程序状态AIR 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.