Как сохранить и загрузить объекты во Flash Adobe Air - PullRequest
1 голос
/ 27 февраля 2012

Мне кажется, что я немного не в себе: мне нужно найти способ, позволяющий пользователям сохранять свою галактику в космической игре, которую я создаю.На самом базовом уровне мне нужно записать случайно сгенерированную галактику (которая является экземпляром пользовательского класса) на диск, а затем прочитать ее с диска позже.Я раньше не использовал возможности файлового потока 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 байт - очевидно, слишком мал, чтобы содержать какую-либо информацию.

Когда я отслеживаю объект во второй функции, он становится пустым.поскольку очень трудно найти эту информацию, четко объясненную для новичка, такого как я.

Спасибо за ваше понимание.

Ответы [ 3 ]

0 голосов
/ 27 февраля 2012

Подобные вопросы были заданы ранее. Проверьте ответы: IExternalizable (as3) , Сохранение состояния приложения AIR .

0 голосов
/ 13 сентября 2012

Я думаю, что мы можем только сериализовать динамический объект и сохранить его как json. как XML, Array, Object, Dictionary могут сделать это. убедитесь, что их элементы имеют базовый тип, а экземпляры динамического класса могут быть целыми.

0 голосов
/ 27 февраля 2012

Почему бы не сохранить какой-нибудь XML или что-то, что вы можете прочитать и проанализировать для объектов?

...