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

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

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
По умолчанию Как из Object-a сделать идентичный адекватный класс который мне нужен.

Суть в чем. Играюсь с шаредОбжектом. Пытался схалтурить и записать туда весь экземпляр нужного мне класса.
Оно вроде как получилось, но не до конца. Экземпляр записывается, но достается оттудова не с тем типом с которым я его туда записал а с типом Object.

Все параметры сохраняются, и все вложенные стандартные штуки типа Dictionary, Array, и тем более примитивные типы - свои типы сохраняют, а все экземпляры авторских классов возвращаются абстрактно.

Код AS3:
sharedObject.data.myObject[name] as MyObject;// - Выдает null;
Писать какую-то функцию типа:
Код AS3:
function getFromObject(obj:Object, myObject:MyObject):void
{
	for each(var key:String in obj)
	{
		myObject[key] = obj[key]
	}
}
Или может кто-то что-то красивее предложит?
Можно, конечно, прикрутить какую-то аналитику и писать в шаред только несколько нужных параметров. А потом не объект целиком доставать а нужные параметры и всовывать в свой объект.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 23.05.2011, 23:10
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
registerClassAlias
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Не взлетает, оно видимо на сессию работает, а мне ведь после перезагрузки надо.

Пробовал делать перед извлечением объекта из шареда - не работает.
потом перенес перед тем местом где записываю - результат тот же.
потом плюс предыдущему пункту для проверки добавил getClassByAlias() в том месте где извлекаю - говорит не могу найти такой класс ибо не зарегистрирован.

ЧЯДНТ?

Добавлено через 8 минут
так записываю
Код AS3:
			if (_storeToSO = storeToSharedObject) 
			{
				if (!sharedObject) sharedObject = SharedObject.getLocal("/loading", "/");
 
				registerClassAlias("com.loading.BulkLoader", BulkLoader);
 
				if (!sharedObject.data.isPrototypeOf("loaders"))
				{
					sharedObject.data.loaders = new Object();
				}
 
				sharedObject.data.loaders[name] = this as BulkLoader;
			}
так достаю.
Код AS3:
			if (sharedObject.data.hasOwnProperty("loaders") && sharedObject.data.loaders.hasOwnProperty(name))
			{
				trace("trying to return loader from So");
				try
				{
					registerClassAlias("com.loading.BulkLoader", BulkLoader);
					getClassByAlias("com.loading.BulkLoader")
				}
				catch (e:Error)
				{
					trace(e.errorID, e.name, e.message)
				}
				return sharedObject.data.loaders[name] as BulkLoader;				
			}
Добавлено через 30 минут
эммммм, или его перед записью сериализовать надо? щас попробую

Добавлено через 11 часов 18 минут
Короче в итоге проще оказалось пересмотреть логику Ну и использовал мой любимый метод программирования: "удалить ненужный код".
__________________
Кто к нам с чем для чего - тот у нас того от того.


Последний раз редактировалось Dukobpa3; 23.05.2011 в 23:57.
Создать новую тему Ответ Часовой пояс GMT +4, время: 04:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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