![]() |
Пользовательское событие
Никак не могу разобраться с пользовательскими событиями. Вроде пишу что-то, но не работает.
Поэтому, уважаемые форумчане, скиньте пожалуйста полный код какого-нить своего простого пользовательского события, чтобы я его разжувал и наконец таки все понял. А то по примерам, которые у меня есть, мне мало что понятно. Или же объясните простым языком, что да как. Заранее благодарен. |
А может для начала вы скажете что именно не получается, и свой код скинете, а мы уж коллективным разумом ошибки поищем?;)
Здается мне, так эффективнее получится) |
Само событие, расширяющее стандартный event 2 параметрами - x и y(по типу как mouse event);
Код AS3:
Код AS3:
Код AS3:
|
эм... а зачем у вас в событии сеттеры?
|
Цитата:
Но хочу обратить ваше внимание на то, что во flash нет ни одного события с открытыми членами, все реализовано через свойства... Подозреваю, что так обстоит дело не только с событиями, а и со всеми стандартными классами flash. Константы, естественно, не в счет... Добавлено через 3 минуты Там в примере еще атрибутов по хорошему не хватает, вроде такого: Код AS3:
|
Цитата:
Использовать сеттеры в событиях это мягко скажем моветон. Ваше же объяснение совсем не по теме вышло. |
в чем моветон то?
ну сеттер и сеттер... хочешь 1 раз при создании передать в него что-то - передай всего 1 раз. благо if никто не отменял) Добавлено через 8 минут п.с. я, просто, вообще не сторонник "много параметров в конструктор". в отношении Ивентов - больше одного кастомного параметра для ивента - моветон (ИМХО). в данном случае х,у легко заменяется одним поинтом. |
Ну вот событие, которое у меня посылается при взлете вертолета в игре:
Код AS3:
|
Цитата:
Но это вовсе не значит, что в событиях не нужны сеттеры, просто они не нужны конкретно здесь... К примеру взгляните на тот же MouseEvent, и вы найдете там сеттеры, и не случайно;) Впрочем когда я писал код примера, я как то об этом не задумывался, нужны там сеттеры или нет...:) На вопрос, как сделать пользовательские события, такие тонкости, как наличие сеттеров... врятли имеет какое то значение.... |
goodguyабсолютно не понял, в чем "кастомность" Вашего события, в каком месте оно "расширяет" обычное Событие и, в частности, чем отличается метод clone в Вашем событии от исходного, что его пришлось оверрайдить. Не логичнее было бы создать класс ВертолётИвэнт, а в нем уже разные ТИПЫ этого события - ап, даун, дестрой и т.п.? Даже в этом ключе в нем нет особой необходимости - можно создать класс-список констант типа HELICOPTER_UP, HELICOPTER_DOWN, HELICOPTER_DESTROYED и диспатчить обычные экземпляры Event с нужным Типом из этого списка. Нет смысла множить сущности.
Кастомные классы событий нужны, когда Вы хотите передавать в событиях дополнительные параметры. По поводу количества параметров - можно иногда отказаться от передачи типа в конструктор кастомного события, если тип в реальности один. Например Код AS3:
Код AS3:
|
| Часовой пояс GMT +4, время: 02:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.