![]() |
Можно ли подписаться на все события?
Есть некий класс, наследован, допустим, от спрайта. Мы его добавляем на стейдж, убираем, что-то с ним делаем. Можно ли для этого класса подписаться на все события сразу? Нужно для того чтоб из все сохранить а потом в определённый момент передиспатчить(с этим проблем нет). Можно конечно сделать много копипаста и подписаться на каждый тип события по отдельности. Также можно гарантировать что никаких пользовательских событий не диспатчится и все события что могут ходить описаны в Event.* Опять же знаю что в нормальном коде такое недопустимо, используется в академических и очень специфических целях.
|
Цитата:
--- P.S. В Google я не ходил, могу оказаться неправ. |
Я не знаю, зачем это нужно, но ответ очевиден - надо не подписываться на все события, а подписаться на одно событие (напр. Main.SUPER_EVENT), а все события в приложении свести к этому событию. Примерно так:
Код AS3:
Если событий много - можно кастомный класс написать для такого события. Но, еще раз повторюсь, не могу придумать, зачем это надо в реальной жизни. |
Перегрузить addEventListener у этого класса может просто? И записывать кто на что подписал его.
|
Цитата:
Цитата:
Разъясню немного подробнее. Был класс и был у него конструктор, там он подписывался на всякие события, я не знаю какие. Мне надо сделать конструктор пустым и его код переместить в другой метод, который я позже вызову сам и объект инициализируется с запозданием. Проблема в том что если он в конструкторе подписался на Event.ADDED_TO_STAGE, то если я это перенесу в метод, который вызову после добавления на стейдж, то это событие уже не придёт, а мне надо его ему отправить. Руками если я сам ловлю и отправляю потом, после инициализации, то всё работает. Только хотелось бы лаконично всё за него получить а потом ему же всё и отправить. |
Не понятно что там конкретно куда добавляется, но очевидно, что перехват всех событий - не лучший способ решения подобной задачи.
Aquahawk, а если всё-таки избежать таких формулировок: Цитата:
Уверен, что можно найти намного более рациональный способ |
goodguy
Я в бинаре модифицирую чужой компиленый код, что там может быть всё что угодно и оно может подписываться на всё что угодно, только я этот код выдираю и потом пускаю сам, соответственно часть событий пройдут мимо него, а они должны прийти. Я думаю что собрать за него все события а потом скормить их ему - наилучший вариант. |
И всё, поди, без пошлины? (с)
|
-De- по Российским законам реверс-инжиниринг и дизассемблинг разрешёны для обеспечения совместимости с разрабатываемым тобой продуктом, что я и делаю, так что всё нормально и вполне официально. Да и пока я правлю собой же написанные тесткейсы.
|
Цитата:
|
alexcon314 я сейчас на работе, вечером домой приду, найду и скину.
Добавлено через 7 часов 35 минут alexcon314 Собственно вот: Гражданский Кодекс РФ статья 1280 (http://www.gk-rf.ru/statia1280) Особенно интересен пункт 3. Цитата:
|
| Часовой пояс GMT +4, время: 03:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.