2014-09-22 3 views
0

Создание класса с RemoteClass metategFlex - сохранение Сериализированной 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. 
} 

Вот проблема. Возвращенная коллекция с объектами типа объекта. Как я могу получить коллекцию объектов типа результата? Плохой путь ниже

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

ответ

2

Использование registerClassAlias() Перед сериализации/десериализации

+0

я могу получить только один экземпляр класса Result, но не может получить выдержанные массив объектов результата. – dkhmarnyi

+0

Попробуйте также зарегистрировать ArrayCollection. Насколько мне известно, существует только несколько типов, которые вам, возможно, не нужно регистрировать. – Ingweland

+0

Спасибо большое! Функция RegisterClassAlias ​​() или [RemoteObject] работает! – dkhmarnyi

Смежные вопросы