|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Можно ли подписаться на все события?
Есть некий класс, наследован, допустим, от спрайта. Мы его добавляем на стейдж, убираем, что-то с ним делаем. Можно ли для этого класса подписаться на все события сразу? Нужно для того чтоб из все сохранить а потом в определённый момент передиспатчить(с этим проблем нет). Можно конечно сделать много копипаста и подписаться на каждый тип события по отдельности. Также можно гарантировать что никаких пользовательских событий не диспатчится и все события что могут ходить описаны в Event.* Опять же знаю что в нормальном коде такое недопустимо, используется в академических и очень специфических целях.
|
|
|||||
Цитата:
--- P.S. В Google я не ходил, могу оказаться неправ. Последний раз редактировалось bav; 01.12.2010 в 11:43. |
|
|||||
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Я не знаю, зачем это нужно, но ответ очевиден - надо не подписываться на все события, а подписаться на одно событие (напр. Main.SUPER_EVENT), а все события в приложении свести к этому событию. Примерно так:
private function onSuperEventIncoming(e:Event) : void { var eventType:String = e.target.eventType; // это и есть реальное событие } Если событий много - можно кастомный класс написать для такого события. Но, еще раз повторюсь, не могу придумать, зачем это надо в реальной жизни. |
|
|||||
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Перегрузить addEventListener у этого класса может просто? И записывать кто на что подписал его.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. |
|
|||||
Цитата:
Цитата:
Разъясню немного подробнее. Был класс и был у него конструктор, там он подписывался на всякие события, я не знаю какие. Мне надо сделать конструктор пустым и его код переместить в другой метод, который я позже вызову сам и объект инициализируется с запозданием. Проблема в том что если он в конструкторе подписался на Event.ADDED_TO_STAGE, то если я это перенесу в метод, который вызову после добавления на стейдж, то это событие уже не придёт, а мне надо его ему отправить. Руками если я сам ловлю и отправляю потом, после инициализации, то всё работает. Только хотелось бы лаконично всё за него получить а потом ему же всё и отправить. |
|
|||||
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Не понятно что там конкретно куда добавляется, но очевидно, что перехват всех событий - не лучший способ решения подобной задачи.
Aquahawk, а если всё-таки избежать таких формулировок: Цитата:
Уверен, что можно найти намного более рациональный способ |
|
|||||
goodguy
Я в бинаре модифицирую чужой компиленый код, что там может быть всё что угодно и оно может подписываться на всё что угодно, только я этот код выдираю и потом пускаю сам, соответственно часть событий пройдут мимо него, а они должны прийти. Я думаю что собрать за него все события а потом скормить их ему - наилучший вариант. |
|
|||||
-De- по Российским законам реверс-инжиниринг и дизассемблинг разрешёны для обеспечения совместимости с разрабатываемым тобой продуктом, что я и делаю, так что всё нормально и вполне официально. Да и пока я правлю собой же написанные тесткейсы.
|
|
|||||
listener
|
Цитата:
|
Часовой пояс GMT +4, время: 20:44. |
|
« Предыдущая тема | Следующая тема » |
Теги |
addeventlistener , all events , все ивенты , все события |
|
|