![]() |
"Пользовательские события" и "Интерфейсы" на пальцах...
"Пользовательские события" и "Интерфейсы" на пальцах может кто нибудь объяснить с простыми примерами и обзором в каких случаях используется обычно.
Читая Колина Мука, не совсем понимаю, что он хочет донести в соответствующих главах. То есть примеры там есть,но не очевидные, к тому же в "Код листингах" многое остается без комментариев. Заранее спасибо. |
PasserBy, советую не забвивать себе голову интерфейсами данном этапе. Когда я читал эту книжку, мне тоже было не понятно это. Все прийдет со временем. Пока этот момент можно пропустить и разобраться с более понятными вещами.
|
Цитата:
Как я понял из форума, классы и события - основа основ AS |
Есть события, которые возникают на стороне FP когда происходит какое-либо действие (клик, завершение загрузки и т.п.). Их вы можете отследить, подписав что либо на эти события (кнопку на клик, лоадер на завершение).
Но, например, вы хотите сделать своё собственное, которого нет в принципе в природе. Допустим когда чья-то бабушка подойдёт к микрофону и громко крикнет "Тагиииил!" - ваша система распознает голос, определит, что он исходит от бабушки и "вручную" создаст своё событие и разошлет его подписчикам: Код AS3:
|
Цитата:
Скажите пожалуйста, а зачем заморачиваться как в примерах К. Мука? ..например вот, только что написал по его примерам => Main Код AS3:
Код AS3:
Код AS3:
|
Ну всё правильно. Вы можете расширить класс Event, описав своё событие так как вам нужно.
С той же оперы, что и создать мувиклип с квадратом внутри на лету, выполняя все эти graphics.draw и т.п. или создать свой класс, расширяющий мувиклип, в котором это все заранее описано, а потом создать экземпляр этого расширенного класса. |
Цитата:
|
Эм, куда проще? Вам удобно создавать нужные вам объекты каждый раз описывая свойства и логику работы при создании?
Или удобно запихнуть все в один класс, описав все действия в нём, а потом создать экземпляр этого класса, не задумываясь, забыл ли указать какое-либо из свойств? То же и с событиями. |
Цитата:
|
PasserBy, пока не поздно, почитайте Правила форума.
У нас не принято создавать "тему имени себя" и спрашивать в ней все, что придет в голову. Многие люди используют Поиск по форуму для нахождения ответов на свои вопросы (для этого, конечно, надо отложить на время веру в свою уникальность), а для эффективного поиска важно, чтобы тема была посвящена одному вопросу и имела правильное название, раскрывающее суть этой темы. Вы уже нарушили это правило, задав два несвязанных вопроса в названии, и теперь задаете третий. Я так понимаю, вопросы, озвученные в названии, уже исчерпаны? Можно закрывать? По поводу событий. Есть два способа "своих" событий — 1. Использование класса Event. При этом задается только своё "имя" события, то есть строковый тип, как в примере dispatchEvent(new Event("моё_имя_события"); 2. Расширение класса Event, то есть создание своего КЛАССА события (как в Вашем примере из Мука). Расширяя класс, Вы можете добавлять в него собственные свойства любого типа, и тогда сам объект события, который передается в обработчик, сможет содержать/переносить/отдавать какую-то дополнительную информацию (подобно тому, как MouseEvent, расширяя Event, содержит данные о координатах мыши, состоянии служебных клавиш в момент события и т.п. полезные данные). Добавлено через 6 минут То есть конкретно "извращаться" как в данном примере нет никакого смысла, поскольку никаких пользовательских данных новый класс события не содержит. С таким же успехом можно было использовать и простой Event, только константу с именем пришлось бы хранить в другом месте. |
| Часовой пояс GMT +4, время: 03:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.