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

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

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

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
По умолчанию TypeError: Error #1007: Instantiation attempted on a non-constructor.

Идея такая: делаем хеш из классов, и в зависимости от параметра создаём и возвращаем объект нужного класса.

Код AS3:
private function createModuleView(moduleType:String, moduleModel:Model):View{
 
	var classes:Object	=	{};
 
	classes[SiteModuleType.TEXT	]	=	site.modules.text.ModuleView;
	classes[SiteModuleType.PHOTO	]	=	site.modules.photo.ModuleView;
	classes[SiteModuleType.PHOTOSET	]	=	site.modules.photoset.ModuleView;
	classes[SiteModuleType.SETGROUP	]	=	site.modules.setgroup.ModuleView;
 
	return new classes[moduleType](moduleModel);
 
}//createModuleView
Но на выходе получаю эту ошибку.

Что я делаю не так?
__________________
тонкий тролль, осеянный благодатью

Старый 11.11.2008, 00:24
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Вопрос первый: зачем хеш пересоздавать каждый раз при вызове метода?
Вопрос второй: чем не угодил switch?
Вопрос третий: какое значение moduleType передается?

Старый 11.11.2008, 00:34
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 3  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
1. Переписал этот кусок цепочкой if - return'ов, уже неактуально
2. Не люблю свитч, громоздкий он и выглядит некрасиво
3. Одно из перечисленных в хэше. Все проверки уже выполнены.

Вопрос снят. Был косяк в проверках moduleType.
__________________
тонкий тролль, осеянный благодатью


Последний раз редактировалось Gaen; 11.11.2008 в 00:36.
Старый 11.11.2008, 00:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
2. Выглядит он вполне красиво, если оформить нормально;

Тем не менее, метод по сути натуральная фабрика, но опирается она на какие-то строковые параметры, объясняющие, какого типа является передаваемая модель, хотя мог бы опираться на класс передаваемой модели без строкового костыля, но в данном случае это невозможно, в силу того, что все модели имеют одинаковое имя класса при разных пакетах, что мало того, что странно само по себе, так ещё и создаст проблемы в будущем.

Куда потерялась логика — неизвестно.

Старый 11.11.2008, 01:10
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 5  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Структура изначально кривовата, времени переделывать уже нет. В конце концов это первый блин в mvc

moduleType - не совсем костыль. Этот параметр берёт своё начало ещё из события, которое посылает меню и в котором указывается что за модуль показывать и с какими параметрами.

Модели все одинаковые, код в соседнем треде про mvc. Ссылки на модели модулей явно нигде не хранятся, поэтому они попадают в GC при удалении модуля.

Модули мне почему-то показалось красивым раскидать по разным пакетом и обозвать одинаковыми именами... Наверно не хотелось в одну кучу всё кидать. Ко мне вообще иногда очень забавные мысли приходят. Но пока ещё всё можно исправить.

А вообще вся эта деятельность направлена на переписывание вот этого чуда: http://photoroot.ru/ потому что сейчас что-то туда дописывать равносильно копанию в говне.
__________________
тонкий тролль, осеянный благодатью

Старый 11.11.2008, 01:12
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Тем не менее, уже можно быть морально готовым к тому, что это ещё раз надо будет переписывать.

Старый 11.11.2008, 01:23
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 7  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Добавления модулей в ближайшие несколько лет не предвидится, поэтому терпит.
Сейчас я нарабатываю опыт на таких вот вещах, учусь на своих ошибках и пытаюсь учиться на чужих. С каждым разом результат получается всё лучше.
__________________
тонкий тролль, осеянный благодатью

Старый 11.11.2008, 10:39
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
лучше? Вы уверены? кто оценивает Ваше лучше?

Старый 11.11.2008, 11:36
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 9  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Основной критерий - время и нервы, которые уходят на то чтобы что-то добавить или изменить. С каждым разом это делается легче.
__________________
тонкий тролль, осеянный благодатью

Старый 11.11.2008, 12:06
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 10  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
"легче" - совсем не синоним "лучше".


Последний раз редактировалось BlooDHounD; 11.11.2008 в 12:13.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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