![]() |
Экземпляр какого класса придет в листенер. Часть 2
На самом деле это продолжение старого топика. Но старый топик стал таким запутанным, что я решил подвести итог и начать новый топик.
Итог: Пример: Человек может купить собаку. При этом он посылает кастомное событие, в котором лежит собака. Код AS3:
Для решения проблемы можно отнаследовать ManEvent от TransportEvent и посылать в слушатель именно ManEvent. Код AS3:
|
Зачем вообще наследовать события? Вполне достаточно унаследовать свой класс от базового класса Event и не городить никаких длинных цепочек.
И зачем передавать эту собаку в конструкторе? Можно сделать у события публичное свойство dog и передавать его туда. п.с. не стоило создавать новую тему |
По всему проекту разбросаны кучи однотипных классов.
Код AS3:
Я решил удалить все эти классы, и создал TransportEvent, который несет нетипизированный объект. |
Цитата:
Цитата:
Добавлено через 7 минут у пришедшего события (TransportEvent) будет type == ManEvent.I_BOUGHT_DOG |
С помощью метатегов event мы можем указать редактору кода, какие события может отправлять Man.
А как узнать какой объект придет в слушатель, не залезая в Man? |
Цитата:
Если есть Man и ManEvent, то не должен Man отправлять никаких TransportEvent. Он должен слать ManEvent, чтобы все было интуитивно понятно. |
Цитата:
|
Цитата:
Код AS3:
caseyryan, я описал тут почему я хочу попробовать новый подход. |
Цитата:
Зачем нужно посылать TransportEvent, пытаясь его выдать за ManEvent, когда можно просто сделать свойство в TransportEvent публичным, и оно будет доступно как в ManEvent, так и в TransportEvent и в других местах, где есть доступ к объекту ManEvent или TransportEvent. Что мешает сделать так? Код AS3:
|
Пусть будет публичное. Это никак не влияет на суть вопроса.
Зачем у вас класс ManEvent расширяет TransportEvent? Что он умеет нового по сравнению с TransportEvent? |
| Часовой пояс GMT +4, время: 00:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.