Как сохранить объекты в файл (AS3 / Air) - PullRequest
0 голосов
/ 26 октября 2011

Что я хочу? Сохранить мой проект в редакторе, созданном с помощью приложения Air

Что сохранить? 1 Объект -> Тип ArrayCollection -> Содержит -> Объекты из собственных классов ...

Какая была моя первая попытка?

var stream :FileStream = new FileStream();
stream.writeObject(myArrayCollection);

В чем была проблема? Объекты внутри myArrayCollection получили такую ​​структуру:

public class MyClass1
    {
        public var title:String;
        public var description:String;
        public var kindOf:String = "...";
        public var thumbnail:String;
        public var children:ArrayCollection
...}

Все публичные переменные были сохранены FileStream .... отлично работает Внутри дочернего массива arrayCollection находятся объекты этого класса:

public class MyClass2 extends XMLDocument implements IExternalizable
    {

        public const kindOf:String = "Seite";

        [Bindable]
        public var title:String;
        public var contenBox:OwnClass; //extended spark Group

public function get childrens():ArrayCollection
        {
            var childs: ArrayCollection = new ArrayCollection();

            var i:int = 0;
            while(i > (contenBox.container as spark.components.Group).numElements)
            {
                childs.addItem((contenBox.container as spark.components.Group).getElementAt(i));
                i--;
            }

            return childs;
        }

        public function readExternal(input:IDataInput):void
        {
            trace("hello i'am reading");
        }

        public function writeExternal(output:IDataOutput):void
        {
            trace("hello i'am writing");
            output.writeObject(children);
        }

Теперь проблема ... fileStream содержит мои объекты MyClass2 с переменной "title", но нет дочерних ArrayCollection ... консоль не показывает следы: - /

1 Ответ

1 голос
/ 15 декабря 2011

Вы пытались сериализовать свой объект? Вы можете сериализовать его в XML и затем вернуться к чтению. Кажется, хорошей библиотекой для этого является Flexxb

другой способ записать файл в виде сырых двоичных файлов с Bytearray, как было объяснено здесь

надеюсь, это поможет!

...