Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ByteArray сериализация. (http://www.flasher.ru/forum/showthread.php?t=175234)

stweet 13.02.2012 00:43

ByteArray сериализация.
 
Код AS3:

private var fr:FileReference;
 
public function FileSaver ( )
{
        fr = new FileReference( );
        fr.addEventListener(Event.SELECT, SELECT);
        fr.addEventListener(Event.COMPLETE, COMPLETE);
 
        //var go : GameObject = new GameObject ( 0 );
        //
        //var ba:ByteArray = new ByteArray( );
                //ba.writeObject(go);
        //
        //fr.save(ba, "default.go");
 
        fr.browse([new FileFilter("text(*.go)", "*.go")]);
}
 
private function COMPLETE(e:Event):void
{
        var ba : ByteArray = fr.data;
        var go : GameObject = ba.readObject( ) as GameObject;
 
        trace(go.id); // Не удается вызвать свойство или метод со ссылкой на объект "null". ???
}
 
private function SELECT ( e : Event ) : void
{
        fr.load( );
}

Заранее спасибо.

Добавлено через 4 минуты
знаю что в JAVA есть интерфейс который позволяет сериализировать объекты.
Может и в AS3 как то иначе реализуется сериализация, с использованием интерфейсов.

Srednas 13.02.2012 09:02

А что выдают
Код AS3:

trace(ba.readObject);

Код AS3:

trace(fr.data);


cleptoman 13.02.2012 09:43

почитайте про registerClassAlias.

stweet 13.02.2012 18:29

Цитата:

Сообщение от Srednas (Сообщение 1062484)
А что выдают
Код AS3:

trace(ba.readObject);

Цитата:

trace(go.id); // Не удается вызвать свойство или метод со ссылкой на объект "null". ???
ссылкой на объект "null", т.е. преобразование не прошло.
Код AS3:

trace(fr.data);


Выдаёт байткод.
Я так понимаю, что, после записи объекта(gameObject) в байт код, не важно чем он являлся до сериализации(а у нас он GameObject) его можно преобразовать только в Объект(Object) с данными, т.е. выходит та же XML.

Чего пытаюсь добиться я:
Есть сервер "blazeds" в одном из его примеров есть возможность преобразование объектов JAVA --> AS3, правда происходит всё по средствам флекса. Вот я и пытаюсь повторить схожий метод но на чистый код AS3.
В целом миссия, задача: Создать объекта по средствам AS3, записать в байт код, сохранить под нужным мне расширением, ну и в дальнейшем им пользоваться.

Все мои попытки привели в к созданию *.xml || *.txt файла с данными, выходит что после десериализации полученную информацию придётся парсить. И судя по логичному продолжению, содержимое объекта (GameObject) перед сериализацией то же придёться упаковывать индивидуально к каждому полю, после чего не вижу смысла упаковывать сам объект.

Кто работал с сериализацией объектов должен видеть суть мысли. Вопрос в том, можно ли вообще в AS3 сериализировать объекты.

Jewelz 13.02.2012 18:41

а комментарий №3 вы не увидели?

Inet_PC 13.02.2012 18:52

Если Вы хотите реализовать сериализацию/десеарилизацию сами (вручную), то IExternalizable Вам в помощь, иначе пост №3. И про _explicitType не забудьте.

stweet 13.02.2012 18:57

Цитата:

Сообщение от Jewelz (Сообщение 1062611)
а комментарий №3 вы не увидели?

Прошу прощения, 3-й пост не увидел.

Добавлено через 50 минут
Всем спасибо, вроде бы как заработало.
В ходе экспериментов вывелась малая магия.
Для проверки, в сериализуемый объекта добавил ТекстФилд со своими надстройками.
После перевода в байт код и вывода обратно в объект текст на экране стал отображаться с очень низким качеством, словно его пропустили через БитМап и БлюрФильтр. Надеюсь с растровым изображением будит иначе.


Часовой пояс GMT +4, время: 05:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.