В. Дронов - Macromedia Flash Professional 8. Графика и анимация
Что же мы получим в результате? А вот что. Проигрыватель Flash прочитает сначала ключевое слово _parent, а потом — действие stop. И поймет, что действие stop нужно распространить на основной фильм — ведь именно в него вложен клип clip. Так что добавленное нами выражение остановит внешнюю анимацию.
Привязка сценариев к кнопкам
Кнопки Flash мы пока еще подробно не рассматривали, не считая краткого упоминания в главе 8. Настала пора поговорить о них подробно.
Кнопки (или экземпляры образцов-кнопок) Flash ведут себя подобно обычным кнопкам, которые мы встречаем практически во всех приложениях Windows. Они могут быть нажаты, в результате чего всегда выполняется какой-либо сценарий.
Используются кнопки обычно для того, чтобы предоставить зрителю (в частности, посетителю Web-сайта) возможность выполнить какое-то действие: запустить или остановить воспроизведение анимации, открыть Web-обозреватель и загрузить в него какую-то Web-страницу и пр. В интерактивных фильмах Flash кнопки встречаются очень часто.
Создание кнопок
Прежде чем привязывать к кнопке сценарий, ее нужно создать. Займемся этим.
Давайте продолжим эксперименты с фильмом, показывающим вращающийся прямоугольник. А именно, добавим к нему кнопку, останавливающую анимацию. Ведь остановить анимацию, щелкнув по неподвижной кнопке, проще, чем пытаться "поймать" мышью движущийся клип.
Сначала нам нужно создать образец-кнопку. Делается это уже знакомым нам из главы 8 способом. Выберем пункт New Symbol меню Insert, в поле Name диалогового окна Create New Symbol (см. рис. 8.2) введем имя создаваемого образца-кнопки (дадим ему имя Кнопка), включим переключатель Button в группе Behavior и нажмем кнопку ОК. После этого Flash откроет вновь созданный, пока еще "пустой" образец в режиме правки. Нам останется только нарисовать нашу кнопку.
Но не будем спешить это делать. Посмотрим лучше на временную шкалу (рис. 18.4). Она содержит всего четыре позиции, и весьма странных — все они имеют имена: Up, Over, Down и Hit. В позиции Up уже создан ключевой кадр.
Дело в том, что эти в этих позициях создаются ключевые кадры, которые содержат четыре разных изображения, используемых Flash для отображения различных состояний кнопки. Давайте их перечислим:
□ изображение, находящееся в кадре Up, выводится, когда кнопка не нажата и курсор мыши не установлен над ней;
□ изображение, находящееся в кадре Over, выводится, когда курсор мыши установлен над кнопкой, но сама кнопка не нажата;
□ изображение, находящееся в кадре Down, выводится в тот момент, когда пользователь нажимает кнопку;
□ изображение, находящееся в кадре Hit, задает область, которая будет откликаться на касания и щелчки мышью ("горячую область" кнопки). Это изображение никогда не выводится на экран.
Заметим, что обязательным является только изображение в кадре up. Без остальных можно обойтись. Их отсутствие восполнят следующие правила.
□ Если отсутствует кадр Hit, "горячую область" определяет изображение в кадре Up.
□ Если отсутствует кадр Down, для отображения нажатой кнопки Flash возьмет изображение из кадра Over.
□ Если отсутствует кадр Over, для отображения кнопки, которой "коснулся" курсор мыши, Flash позаимствует изображение из кадра Up.
Кнопки Flash имеют еще одну интересную особенность. Дело в том, что "горячая" область кнопки совсем не обязательно должна совпадать с самой кнопкой. Так, иная кнопка может сработать, если пользователь щелкнет совсем в другом месте рабочего листа. Это обстоятельство позволяет создавать весьма забавные и полезные вещи вроде подсказок, "всплывающих" при наведении мыши на какой-либо фрагмент изображения, и пр.
Но давайте все-таки нарисуем нашу кнопку. Не станем особенно мудрить — нарисуем в кадре Up обычный синий прямоугольник. На первый раз этого будет достаточно.
Следующий шаг — рисование изображения в кадре Over. Пусть это будет красный прямоугольник. Создадим в делении Over новый ключевой кадр; Flash автоматически поместит туда изображение из кадра up, и нам останется только перекрасить его в красный цвет.
Нарисуем содержимое остальных двух кадров кнопки. В кадре Down прямоугольник пусть будет темно-синим. А цвет изображения в кадре Hit роли не играет.
Все — образец-кнопка готов. Вернемся в режим правки фильма и откроем панель Library. Создадим новый слой и назовем его Кнопка — именно в него мы и поместим нашу кнопку, иначе анимация в первом слое окажется "оборванной". Найдем в списке образцов только что созданную нами кнопку и поместим в нижний правый угол рабочего листа ее экземпляр. И, наконец, проверим ее в действии.
Воспроизведение фильмов, содержащих кнопки
Воспроизведение фильмов, содержащих кнопки, также имеет некоторые особенности. Flash способен сделать так, что мы сможем нажимать кнопки прямо во время работы над фильмом (конечно, привязанные к ним сценарии работать не будут). Это поможет проверить правильность всех наших действий.
Чтобы задействовать режим обработки кнопок на рабочем листе, нам нужно будет включить пункт-выключатель Enable Simple Buttons меню Control. Также можно нажать комбинацию клавиш <Ctrl>+<Alt>+<B>. После этого,
если мы поместим курсор мыши над кнопкой, она сменит свой цвет на красный. Мы даже сможем ее нажать (правда, привязанный к кнопке сценарий в этом случае не будет выполнен).
Единственный недостаток такой кнопки: мы не сможем ее выделить. Для этого нам придется отключить пункт-переключатель Enable Simple Buttons меню Control.
Естественно, при воспроизведении фильма в отдельном окне кнопки будут работать всегда. Также в этом случае будут работать и все привязанные к ним сценарии.
Добавление звуков к кнопкам
Мы имеем возможность, кроме всего прочего, привязывать к кнопкам звуки. Звуки могут быть привязаны к разным состояниям кнопки, в результате чего, например, при наведении курсора мыши на кнопку будет воспроизведен один звук, а при щелчке на кнопке — другой. Сейчас мы выясним, как это делается.
Прежде всего, импортируем требуемые звуки в библиотеку. (О том, как это делается, было подробно рассказано в главе 17.) Дадим получившимся в результате импорта образцам-звукам "говорящие" имена, например: касание и нажатие. Все — можно приступать к "озвучке" кнопки.
Откроем нужный образец-кнопку в режиме правки. Создадим новый слой для звуков и назовем его Звук-касание. После этого выделим деление over временной шкалы, создадим в нем ключевой кадр и поместим на рабочий лист экземпляр образца-звука Касание. Результат этих действий показан на рис. 18.5.
Чтобы привязать звук к состоянию Down кнопки, нам нужно будет создать еще один слой — Звук-нажатие. После этого останется только создать ключевой кадр в делении Down и поместить в него звук Нажатие.
Теперь можно вернуться в основной фильм и проверить "озвученную" кнопку в действии. Проще всего это сделать, запустив воспроизведение фильма в отдельном окне.
Написание сценариев, привязанных к кнопкам
Уф! Наконец-то кнопка создана. Теперь можно заняться собственно привязкой к ней сценария.
Сценарии привязываются к кнопке точно так же, как и к клипу. Мы выделяем на рабочем листе нужную кнопку, даем ей имя (скажем, button), воспользовавшись панелью Properties, вызываем на экран панель Actions и пишем в ее области редактирования код нужного сценария. Различия имеются только в наименовании событий и синтаксисе заголовков их обработчиков.
Так, "шаблон" для написания сценария-обработчика события кнопки имеет следующий вид:
on(< Обозначение события>)
{
<Код сценария-обработчика>
}
Обратим внимание, что вместо действия onclipEvent в этом случае используется действие on. Это первое отличие. Второе же отличие заключается в том, что для обозначения события нажатия кнопки нам будет нужно использовать Слово press, а не mouseDown.
Учитывая сказанное, напишем сценарий для кнопки. Он будет таким:
on (press)
{
stop();
}
Выражение, записанное в теле этого сценария, нам давно знакомо. Оно остановит анимацию в основном фильме, так как сценарии, привязанные к кнопке, действуют на тот клип, в котором эта кнопка находится (в нашем случае — это основной фильм). Это третье отличие сценариев, привязанных к кнопкам, от сценариев, являющихся "собственностью" клипов.