Показать сообщение отдельно
Старый 29.01.2015, 01:10
djken вне форума Посмотреть профиль Отправить личное сообщение для djken Посетить домашнюю страницу djken Найти все сообщения от djken
  № 1  
Ответить с цитированием
djken
 
Аватар для djken

Регистрация: May 2010
Адрес: Краснодар
Сообщений: 182
Отправить сообщение для djken с помощью ICQ Отправить сообщение для djken с помощью Skype™
Question Вопрос об архитектуре приложения

Всем привет.

Например, у меня есть основной класс документа Main, где пишу весь основной скрипт.
В него вложена некая панель BlackList.
В панель вложено множество кнопок ItemBlackList.

Вопросы такие:
1. Правильно ли, что я в классе ItemBlackList подписываюсь на события MOUSE_OVER и MOUSE_OUT, а CLICK слушаю в его родительском классе BlackList ? Как я понимаю - дочерний объект не должен влиять на родителя. Как правильно разграничить действия между родителем и дочерними объектами - что должен знать родитель, а что его ребенок?

2. По нажатию на любой из ItemBlackList, в файл blacklist.xml должны записываться некие данные. Но этот XML файл подгружен в классе Main. Как правильнее делать - передавать данные через всю цепочку ItemBlackList -> BlackList -> Main ?? Или же Main не обязан знать что нужно делать с файлом, а всю работу с файлом должен брать на себя класс BlackList ??

Не знаю - правильно ли делать так?
И как в данном случае, например, узнать, какая из множества кнопок была нажата?

Класс Main:
Код AS3:
blackList = new BlackList();
addChild(blackList);
blackList.addEventListener("ITEM_BLACKLIST_CLICK", itemBlackListClick);
 
private function itemBlackListClick(e:Event):void {
	trace("ITEM CLICK");
}
Класс BlackList:
Код AS3:
itemBlackList = new ItemBlackList();
itemBlackList.addEventListener(MouseEvent.CLICK, itemClick);
 
private function itemClick(e:MouseEvent):void {
	dispatchEvent(new Event("ITEM_BLACKLIST_CLICK"));
}
__________________
кто не отвечает, того garbage collector забирает