【问题标题】:Flex - saving Serialized ArrayCollection of Objects to FileFlex - 将对象的序列化 ArrayCollection 保存到文件
【发布时间】:2014-09-22 11:30:04
【问题描述】:

使用 RemoteClass 元数据创建类

[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.
}

问题出在这里。返回的集合带有 Object 类型的对象。 如何获取 Result 类型对象的集合? 下面的路不好

for each (var object:Object in arr) 
{
        object = object as Result;
}

【问题讨论】:

    标签: actionscript-3 apache-flex serialization deserialization amf


    【解决方案1】:

    在序列化/反序列化之前使用registerClassAlias()

    【讨论】:

    • 我只能获取Result类的一个实例,但无法获取Result对象的数组集合。
    • 也尝试注册 ArrayCollection。据我所知,只有少数类型您可能不需要注册。
    • 非常感谢! RegisterClassAlias() 或 [RemoteObject] 元数据有效!
    猜你喜欢
    • 1970-01-01
    • 2015-08-03
    • 1970-01-01
    • 2013-01-20
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多