Опубликован: 04.11.2006 | Уровень: специалист | Доступ: платный
Урок 2:

Применение обработчиков событий

Аннотация: Общеизвестно, что на каждое действие бывает своя реакция. В физическом мире это происходит постоянно – вокруг нас и с нами самими. Мы давим на кнопки, мы давим на людей, мы даже "нажимаем на кнопки" людей – и все с единственной целью: добиться ответной реакции. В Macromedia Flash об этом говорят так: каждому событию соответствует действие.

В среде Flash откликами на всевозможные нажатия, захваты, перемещения, входы, выходы и тому подобное являются обработчики событий. Без них не будет в фильме никакой интерактивности – а потому вы должны знать все о них досконально.

Внимание! Для работы с этим уроком необходимы учебные файлы, которые Вы можете загрузить здесь.

Что будет изучаться


В этом уроке мы создадим несколько проектов, в том числе самостоятельно выполняющуюся презентацию, которая использует события, связанные с кадрами.

В этом уроке:

  • Изучение способов применения в скриптах обработчиков событий
  • Определение наилучшего обработчика для вашей работы
  • Использование событий мыши и кнопки для управления интерактивностью
  • Добавление в проект управления с помощью клавиатуры
  • Создание самопроигрывающейся презентации при помощи кадровых событий
  • Использование событий фильма при создании интерактивного проекта
  • Сочетание различных событий для выполнения нужной задачи
  • Использование методов как обработчиков событий
  • Слушатели и способы их применения

Время выполнения

На выполнение этого урока требуется примерно два часа.

Файлы урока

Файлы-носители:

Нет

Стартовый файл:

Lesson02/Assets/MouseEvents1.fla
Lesson02/Assets/FrameEvents1.fla
Lesson02/Assets/ClipEvents1.fla
Lesson02/Assets/OrchestratingEvents1.fla
Lesson02/Assets/CarParts1.fla

Законченные проекты:

MouseEvents2.fla
FrameEvents2.fla
ClipEvents2.fla
OrchestratingEvents2.fla
CarParts2.fla

Что делают обработчики событий

Обработчики событий (event handlers) – это оркестр, исполняющий интерактивную пьесу вашего фильма. Каждый обработчик содержит скрипт, выполняемый только тогда, когда происходит определенное событие. Каждый скрипт в фильме запускается событием – пользователь навел указатель мыши на кнопку или нажал клавишу, или фильм достиг определенного кадра на монтажном столе, и так далее.

В ActionScript обработчик события (за исключением событий, связанных с кадрами) обычно указан в первой строке всякого скрипта. Примерно так:

Когда происходит (типСобытия) {
  делать то-то;
  делать то-то;
}

События, привязанные к кадрам, происходят, когда монтажный стол при воспроизведении достигает кадра, содержащего скрипт. Для скрипта, помещенного в кадр, не нужен обработчик события – такой скрипт будет выполнен при достижении данного кадра. Так, если бы приведенный выше скрипт был привязан к кадру, он выглядел бы так:

делать то-то;
делать то-то;

Чем лучше вы поймете концепции обработчиков событий, тем более полным будет ваш контроль над интерактивными элементами. Правильно используя обработчики, вы сможете создать такую интерактивную среду, в которой пользователь будет чувствовать себя как дома.

Многие компьютерные программы позволяют пользователю перетаскивать элементы на экране, менять размер окон, делать те или иные настройки с помощью регуляторов, создавать собственные "шедевры искусства" при помощи виртуальных инструментов. Все эти режимы интерактивного взаимодействия зависят от того, как реализована в программном обеспечении обработка различных событий (нажатий кнопок мыши, перемещения мыши, ввода с клавиатуры и т.п.).

Выбор нужного обработчика

Правильное использование обработчиков событий – одна из наиболее сложных проблем, стоящих перед пользователем ActionScript, ведь большинство из нас не задумывается о том, как именно и почему происходят события вокруг нас. А ведь при создании интерактивной среды важно именно это – четко представлять себе, что с чем и как взаимодействует.

Знакомя вас с обработчиками событий Flash, мы будем рассматривать их связь с событиями реального мира. Не забывайте, что во Flash каждому событию соответствует действие (и ответная реакция).

Примечание Далее в этом уроке мы обсудим методы обработчиков событий – под ними мы подразумеваем расширения стандартных обработчиков.

События мыши

Обработчики этой группы управляют выполнением скриптов для событий, связанных с манипуляциями мышью над экранными кнопками и экземплярами фильмов-символов.

Примечание Если вы знакомы с реализацией событий мыши во Flash 5, то знаете, что там их можно было применять только к кнопкам. Во Flash MX же события мыши можно присоединять также к экземплярам фильмов-символов (об этом будет детально рассказано в упражнении).

Нажатие, контакт: on (press)


В реальном мире, если вы к чему-то прикасаетесь или на что-то нажимаете (будь то человек или кубик льда), вы ожидаете реакции: кубик льда начинает таять, человек тоже так или иначе откликается. Обработчик события on(press) служит для имитации событий вроде прикосновений, захватов, нажатий. Этот обработчик используется для запуска скрипта в ситуации, когда указатель наведен на кнопку или фильм-символ и кнопка мыши нажата.

Отпускание, освобождение: on (release)


Отпуская что-либо, прекращая контакт, вы обычно тем самым завершаете взаимодействие с предметом. Данный обработчик имитирует всякого рода освобождение – от нажатия или захвата. Применяется для запуска скрипта в ситуации, когда пользователь отпустил кнопку мыши (которую он до этого нажал на кнопке или экземпляре фильма-символа).

Сдвиг, перетаскивание: on (releaseOutside)

Вообразите колоду карт, лежащую на столе. Вы нажимаете пальцем на верхнюю карту, сдвигаете ее с колоды и отпускаете палец. Во Flash вы можете представить себе кнопку, которую пользователь нажал, переместил мышь и отпустил кнопку. Этот обработчик запускает скрипт в случае, когда пользователь нажал кнопку мыши на объекте (экранной кнопке или фильме-символе), а отпустил за пределами объекта – полезно для программирования всякого рода перемещений и сдвигов.

Управление с клавиатуры: on (keyPress)

Этим событием можно запрограммировать скрипт, который будет выполняться при нажатии пользователем какой-либо клавиши на клавиатуре. Клавишу можно задать любую – с буквой, цифрой, знаками препинания и специальными символами, клавиши-стрелки, Backspace, Insert, Home, End, Page Up и Page Down.

Указал, но не нажал: on (rollOver)


Для того, чтобы почувствовать жар от горячей плиты, не обязательно к ней прикасаться – достаточно поднести руку. Будем считать, что этот обработчик имитирует объекты, которые способны воздействовать на расстоянии – излучая тепло, холод, свет и тому подобное. Также этот обработчик можно использовать для отображения информации (всплывающей подсказки) при наведении указателя на кнопку или экземпляр фильма-символа. Итак, этот обработчик используется для запуска скрипта в ситуации, когда пользователь навел указатель мыши на кнопку или экземпляр фильма-символа.

Указатель отведен в сторону: on (rollOut)


Отведя руку от плиты, вы, естественно, перестаете чувствовать ее жар. Именно такую ситуацию имитирует этот обработчик. Вы можете использовать этот обработчик для запуска скрипта, когда пользователь отвел указатель от кнопки или фильма-символа (на который он перед этим указатель навел).

"Желобки", "впадины", трение: on (dragOver)

Перемещение вперед-назад в пределах какой-либо области – как, например, движется щетка, которой чистят ботинок. Данное событие позволяет имитировать такой тип деятельности, запуская скрипт каждый раз, когда указатель мыши проходит над какой-либо кнопкой или фильмом-символом, пока кнопка мыши остается нажатой.

"Ой": on (dragOut)

Данное событие позволяет имитировать ситуацию, когда вы, прикоснувшись к чему-либо нечаянно, тут же отдергиваете руку. Этот обработчик можно использовать для запуска скрипта в случае, когда пользователь навел указатель на кнопку или фильм-символ, нажал кнопку мыши и тут же убрал указатель в сторону (а кнопка мыши при этом осталась нажатой).

Салтанат Бектегенова
Салтанат Бектегенова

Дострочное пересдача экзамена

 

Евгений Стародубцев
Евгений Стародубцев

Вот задание:

7. Открыв панель Действия (Actions) и установив ее в Экспертный режим(Expert Mode), выделите кадр 1 слоя Actions и введите следующий скрипт:

Евгения Дегтяренко
Евгения Дегтяренко
Украина, Запорожье
Анна Елисеева
Анна Елисеева
Россия, Великий Новгород, Ногородский государственный университет имени Ярослава Мудрого, 2003