0
与RemoteClass创建类metateg的Flex - 节省的对象的序列化的ArrayCollection到文件
[RemoteClass]
public class Result
{
public function Result(){}
}
功能在文件中写入
public function writeData(object:Object):void
{
var file:File = File.desktopDirectory.resolvePath("data.txt");
if (file.exists)
file.deleteFile();
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeObject(object);
fileStream.close();
}
功能从文件中读取
public function readData():Object
{
var file:File = File.desktopDirectory.resolvePath("data.txt");
if(!file.exists)
return 0;
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.READ);
var obj:Object = fileStream.readObject();
fileStream.close();
return obj;
}
功能时,应用程序初始化
public function initApplication():void
{
writeData(new Result()); // write object to file.
var result:Result = readData() as Result; // create Result class object and initializing it data from file
var array:ArrayCollection = new ArrayCollection(); // create collection and fill it objects of Result class
array.addItem(new Result());
array.addItem(new Result());
array.addItem(new Result());
writeData(array); // writing collection in file
var arr:ArrayCollection = readData() as ArrayCollection; // initializing new collecion of collection from file.
}
这是问题所在。用对象类型的对象返回集合。 如何获取Result类型对象的集合?下面
for each (var object:Object in arr)
{
object = object as Result;
}
我可以得到结果只有一个类的实例,但不能得到结果对象的数组保藏。 – dkhmarnyi 2014-09-22 12:15:06
尝试注册ArrayCollection。据我所知,只有几种类型可能不需要注册。 – Ingweland 2014-09-22 12:39:22
非常感谢! RegisterClassAlias()或[RemoteObject] metateg可以工作! – dkhmarnyi 2014-09-22 15:18:05