Обработка событий, возникающих в клипах
Обработчики событий клипов имеют такой формат:
onClipEvent(<Событие>) {
<Тело обработчика>
}
Собственно, нам он уже знаком из главы 18. Вот пример такого обработчика:
onClipEvent(mouseDown) { this.stop();
}
Этот обработчик выполняется в ответ на щелчок мышью на клипе и останавливает воспроизведение вложенной в него анимации. Его код должен быть привязан к самому клипу.
Внимание!
При написании обработчиков событий клипов крайне желательно использование модификатора this, возвращающего ссылку на текущий клип.
Можно создать обработчик, выполняющийся в ответ сразу на несколько событий, перечислив их имена через запятую. Вот так:
onClipEvent(mouseDown, mouseMove) {
stop () ;
}
Этот обработчик выполнится либо после щелчка мышью на клипе (событие mouseDown), либо после перемещения над клипом курсора мыши (событие
mouseMove).
Теперь самое время выяснить, какие события поддерживаются объектом moviedip. Некоторые из них приведены в табл. 19.10; полный же список событий можно найти в интерактивной справке Flash.
Таблица 19.10. Некоторые события, поддерживаемые объектом mov ieci ip
Событие |
Описание |
data |
Возникает при приеме клипом внешних данных (если использовалось действие loadVariables) или загрузке фильма из внешнего файла (если использовалось действие loadMovie). О работе с внешними файлами будет рассказано далее в этой главе |
enterFrame |
Возникает при воспроизведении очередного кадра анимации клипа. Привязанный к нему обработчик выполняется перед всеми сценариями, привязанными к данному кадру |
load |
Возникает сразу после загрузки массива данных образца, на основе которого был создан вложенный клип, и появления на экране самого клипа |
mouseDown |
Возникает при нажатии левой кнопки мыши, когда ее курсор находится над клипом |
mouseMove |
Возникает при перемещении курсора мыши над клипом |
mouseUp |
Возникает при отпускании левой кнопки мыши, когда ее курсор находится над клипом |
unload |
Возникает после того, как клип пропадет с экрана, обычно - при воспроизведении следующего кадра, в котором уже нет этого клипа. Привязанный к нему обработчик выполняется перед всеми сценариями, привязанными к следующему кадру |
Событие enterFrame возникает при воспроизведении очередного кадра анимации клипа. Это значит, что обработчик данного события будет выпол няться постоянно с частотой, равной частоте кадров фильма, до тех пор, пока фильм не закончится. Это можно использовать для выполнения различных задач, например, для отслеживания курсора мыши.
События load и unload можно использовать для запуска или останова воспроизведения других клипов. Например, при загрузке какого-либо клипа воспроизведение другого клипа может приостанавливаться, а после выгрузки - продолжаться. Также можно написать сценарий, загружающий после выгрузки одного клипа другой и запускающий его на воспроизведение.
События mouseDown и mouseup можно, по идее, использовать для создания на рабочем листе подобия кнопок. Но для таких целей лучше использовать полноценные кнопки Flash, создание которых было описано в главе 18.