Слушатели событий и функции их обработки
Прослушивание событий и реагирование на них в ActionScript делится на две части. Одна часть кода — метод addEventListener () — прослушивает определенное событие от определенного объекта. Другая часть кода, которая называется функцией для обработки события, реагирует на произошедшее событие.
Например, у вас на сцене есть кнопка и вы можете настроить ее так, чтобы она выполняла следующие действия.
• Отображать меню, когда пользователь наводит указатель мыши на кнопку.
• Скрывать меню, когда пользователь убирает указатель мыши с кнопки.
• Останавливать воспроизведение анимации щелчком на кнопке.
В данном примере представлена только одна кнопка, с помощью которой можно прослушивать три события (ROLL_OVER, ROLL_OUT и CLICK), а также выполнить три набора действий, в зависимости от произошедшего события.
Для первого случая, если бы кнопка называлась button1, можно было бы указать, что ActionScript следует прослушивать событие ROLL_OVER таким образом:
button1.addEventListener(MouseEvent.ROLL_OVER, showMenu);
Строка кода для событий ROLL_OUT и CLICK будет выглядеть подобным образом.
Метод addEventListener используется всегда, когда необходимо в ActionScript 3.0 прослушать определенное событие. После вызова addEventListener прослушивание события продолжается до тех пор, пока его не удалят. Первый элемент в скобках указывает, какое событие следует прослушать. В данном случае из категории MouseEvent (События мыши) выбрано конкретное событие ROLL_OVER. Обратите внимание на то, что имена событий пишутся заглавными буквами, а слова разделяются символами подчеркивания. То, что имена событий пишутся большими буквами, вначале может показаться немного странным, но в таком виде намного легче видеть ошибки во время компиляции.
После названия события следует название функции, которая выполнится, если произойдет событие ROLL_OVER. Последнее отделено запятой и пробелом. Функция — это блок кода, который выполняет одну или несколько (обычно взаимосвязанных) задач. Функция для обработки события — это функция, которая выполняется в ответ на событие.
Можно создать функции с любым именем, если имена соответствуют трем правилам, перечисленным в разделе «Перемещение по временной шкале Flash». В данном примере название функции — showMenu (показать меню). Стоит называть функции так, чтобы по названиям можно было понять принцип их работы.
Повторение правил именования в ActionScript
Помните, что при указании имен переменных, функций, классов и экземпляров в ActionScript надо придерживаться следующих правил.
• Использовать в именах только буквы, цифры, символы подчеркивания и дефисы и больше никаких других символов.
• Не ставить цифру в начале названия.
• Не использовать пробелы в названиях — их можно заменить символами подчеркивания.
Основной синтаксис функции выглядит примерно так:
function showMenu(е:MouseEvent):void { //весь код ActionScript для показа меню будет находиться между //закрывающей и открывающей фигурными скобками }
При создании функции в ActionScript 3.0 вначале всегда пишется слово function маленькими буквами (регистр всегда важен в ActionScript), а затем имя, которое вы даете функции. После этого указываются параметры, которые берутся в скобки. Более подробную информацию о параметрах вы узнаете в следующих уроках. Пока вам достаточно знать, что требуемый в функции параметр для обработки события описывает событие, вызвавшее функцию. После скобок ставится двоеточие, а за ним — возвращаемый функцией тип данных. В данном случае void (пусто) означает, что функция не возвращает данных.
После этого в фигурных скобках записывается весь код, который будет считываться каждый раз, когда будет происходить событие.
Если вам не совсем все понятно, не переживайте. В процессе работы вы привыкнете к данной процедуре, и все станет намного проще выполнять. Как уже было сказано, изучение слушателей событий и функций для их обработки считается наиболее важным в освоении ActionScript 3.0. Это действие выполняется всегда одинаково. Поэтому полученные в данном уроке знания вы сможете применять в работе с интерактивными функциями ActionScript 3.0.
Комментарии