![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Цитата:
А расширяет TransportEvent для того, чтобы унаследовать от него свойство dog Даже если бы он вообще ничего не умел нового и констант не содержал, он все равно должен был бы быть, потому что Man должен посылать ManEvent, а не какой-то там TransportEvent. Вообще, исходя из вашей логики, не надо создавать вообще никаких лишних классов. Можно весь код писать в одном полотенце Main и не париться, аккуратно раскладывая все по полочкам. Программе пофиг аккуратно там все написано или названия классов и свойств вообще обфусцированы. Все это делается исключительно для удобства чтения программистом. |
|
|||||
|
Регистрация: Dec 2014
Сообщений: 312
|
Цитата:
Цитата:
|
|
|||||
|
Цитата:
dispatchEvent( new TransportEvent(dog, ManEvent.I_BOUGHT_DOG) ); dispatchEvent( new TransportEvent(cat, ManEvent.I_FOUND_CAT) ); dispatchEvent( new TransportEvent(iam, ManEvent.I_DONT_KNOW_EVENT_S_LOGIC) ); function listener(event:TransportEvent):void { switch(event.type) { case ManEvent.I_BOUGHT_DOG: event.cargo.createNoise(); break; case ManEvent.I_FOUND_CAT: event.cargo.makeMyauMyau(); break; case ManEvent.I_DONT_KNOW_EVENT_S_LOGIC: event.cargo.openAdobeHelp(); break; } } Ну или разные слушатели для разных типов событий.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Цитата:
Проблема вобщем в том, что addEventListener принимает подозрительную строку а не тип События. И этого нам не исправить, увы (иногда не увы а ура, но здесь кажется увы). Вцелом я вообще не вижу никакой проблемы, кроме "мы ожидаем", потому что "мы" же и использовали константу из другого класса. Ну так не ожидайте. Во всех случаях, когда мы используем обычный Event со своим строковым типом, мы имеем ровно эту проблему — подписываемся на какую-то левую строку, а получаем в хэндлер стандартный Event. И все довольны. Либо напишите пресловутый ManEvent extends TransportEvent, как советует Кейси. Только наверное нет смысла добавлять к "грузу" еще и "собаку")))))
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Dec 2014
Сообщений: 312
|
Цитата:
caseyryan приписал мне: Вообще, исходя из вашей логики, не надо создавать вообще никаких лишних классов. Можно весь код писать в одном полотенце Main и не париться После чего я приписал ему интерфейсы. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 409
|
может вообще не стоит использовать классы событий, если нет четкого понимания как и зачем это делать)
передавайте через общую шину событие buyPet, единсвтенное можете расширить Event до datEvent, и уже в data пихаете все что нужно. Мне кажется проблема в первую очередь в архитектуре, но однозначно сказать не могу по этому отрывку кода, но слишком все усложнено и запутано. |
|
|||||
|
Регистрация: Dec 2014
Сообщений: 312
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Apr 2009
Сообщений: 409
|
Дело не в принципе работе событий, а понимании целей их типизации. Вы сами видите что получается сложно и запутанно - это сразу должно настораживать. У transportEvent та же проблема, семантически не отражает своей сути (если это просто dataEvent) . Если пользователь купил собаку, то в системе должно быть сгенерировано что-то типа addPet, это логично что где-то понадобится обрабатывать целый класс событий, а не отдельно рождение кошек, собак, поросят.
Но не видя игры целиком - это опять же мое предположение |
|
|||||
|
faraday, вся эта тема, и предыдущая его тема тоже, попахивает каким-то троллингом (кого-то он мне напоминает, из уже неоднократно забаненных на форуме). Чувак либо вообще нифига не понимает и не хочет понимать, либо специально делает вид, что не понимает. Ему уже и так все досконально разжевали что, как и зачем. В итоге вся тема стоит на том же месте, с которого началась.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 17:27. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|