Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.02.2012, 00:43
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 1  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
По умолчанию 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 как то иначе реализуется сериализация, с использованием интерфейсов.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 13.02.2012, 09:02
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 2  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
А что выдают
Код AS3:
trace(ba.readObject);
Код AS3:
trace(fr.data);
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.

Старый 13.02.2012, 09:43
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 3  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
почитайте про registerClassAlias.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 13.02.2012, 18:29
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 4  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от Srednas Посмотреть сообщение
А что выдают
Код 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 сериализировать объекты.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 13.02.2012, 18:41
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 5  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
а комментарий №3 вы не увидели?
__________________
low +

Старый 13.02.2012, 18:52
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 6  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Если Вы хотите реализовать сериализацию/десеарилизацию сами (вручную), то IExternalizable Вам в помощь, иначе пост №3. И про _explicitType не забудьте.
__________________
http://www.chessmax.ru


Последний раз редактировалось Inet_PC; 13.02.2012 в 18:59.
Старый 13.02.2012, 18:57
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 7  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от Jewelz Посмотреть сообщение
а комментарий №3 вы не увидели?
Прошу прощения, 3-й пост не увидел.

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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