3.3. Особенности кнопок

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

Итак, проведем эксперимент. Откроем новый ролик, нарисуем в рабочей области прямоугольник, например, синего цвета, выделим его и нажмем клавишу F8, чтобы преобразовать во флэш-символ. Зададим ему тип Button (Кнопка) и назовем knopka. Теперь дважды щелкнем на нашей кнопке (или на ее значке в библиотеке), чтобы перейти в режим редактирования.

Шкала времени для кнопки
Посмотрите, как выглядит шкала времени для кнопки. На ней всего четыре кадра, причем каждый из них имеет свое название: Up (Свободна), Over (Сверху), Down (Нажата) и Hit (Область наведения). В принципе можно насоздавать дополнительные кадры, но толку от них никакого не будет.

Четыре кадра Up (Свободна), Over (Сверху), Down (Нажата) и Hit (Область нав" дения) предназначены для управления видом кнопки в зависимости от дси ствий пользователя. Как мы уже говорили, при наведении мыши на кнопку (при просмотре ролика) указатель мыши превращается в "лапку". Но, помимо этого, программа Flash ориентирована еще и на изменение вида самой кнопки.

Смысл кадров в следующем. Когда указатель мыши пользователя не наведен на кнопку, кнопка отображается так, как определено в кадре Up (Cвободна). Когда пользователь наводит на кнопку указатель мыши, начинается отображение кадра Over (Сверху). Когда пользователь нажимает кнопку мыши, отображается кадр Down (Нажата). Наконец, кадр Hit (Область наведения) не отображается никогда, но очень важен, поскольку именно он определяет область действия кнопки.

Продолжим рассмотрение нашего примера. Сейчас у нас в кнопке knopka определен только кадр Up (Свободна). При этом программа ведет себя так, как будто в остальных кадрах содержится то же самое, что и в кадре Up (Свободна).

Нажмем два раза клавишу F6, чтобы создать ключевые кадры на позиции Over (Сверху) и Down (Нажата). Перейдем в кадр Over (Сверху). Зальем в нем наш прямоугольник черно-синим круговым градиентом. Теперь перейдем в кадр Down (Нажата). Зальем в нем прямоугольник тем же градиентом, затем нажмем кнопку Scale (Масштабирование) и уменьшим размер прямоугольника. Передвинем его так, чтобы центр фигуры остался на том же месте, что и у большого прямоугольника в других кадрах.

Нажмите клавиши CTRL+ENTER. Перед вами появится кнопка в виде синего прямоугольника. При наведении на нее мыши она изменит свой цвет, а при нажатии кнопки еще и уменьшится.

Выбор области наведения
Просматривая результат этого эксперимента, можно заметить, что если навести указатель мыши на самый край кнопки, то ничего не происходит. Изменения начинаются, только когда указатель мыши приближается к середине кнопки. Это происходит потому, что у нас не определен кадр Hit (Область наведения). Его содержимое по умолчанию считается совпадающим с предыдущим кадром Down (Нажата), в котором кнопка изображена маленькой!

Чтобы этого избежать, следует скопировать в кадр Hit (Область наведения) содержимое кадра Up (Свободна). Сделайте это и еще раз просмотрите ролик с помощью CTRL+ENTER. Убедитесь, что теперь кнопка "действует" по всей своей площади.

Иногда имеет смысл определить область действия кнопки большей, чем само изображение, или вообще сделать кнопку невидимой, определив в ней только кадр Hit (Область наведения).

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

Если теперь нажать клавиши CTRL+ENTER, можно заметить, что указатель мыши превращается в "лапку" только непосредственно над контурами букв.

А поскольку в тексте пустое пространство занимает больше места, чем контуры букв, "попасть" в такую кнопку окажется нелегко (особенно, если слово крупное). Да и вообще такая ситуация вызывает недоумение: "Я щелкаю, а оно не работает!" Однако ситуацию можно легко исправить, нарисовав в кадре Hit (Область наведения) прямоугольник, несколько превосходящий по размерам надпись. Тогда кнопка станет для пользователя вполне "нормальной".

Вообше говоря, область действия кнопки не обязана совпадать с ее изображением. Если, например, скопировать содержимое кадра Up (Свободна) и кадр Hit (Область наведения), а затем передвинуть его в кадре Hit (Область наведения) куда-нибудь в другое место, при просмотре ролика возникнет весьма интересный эффект: кнопка "срабатывает" при щелчке не на ней, а в каком то совсем другом месте. Только не увлекайтесь этим эффектом: иногда он производит впечатление недоделки, как будто что-то работает неправильно.

Ну, а какое действие можно запрограммировать как реакцию на нажатие кнопки? Очень часто это, например, остановка или пуск воспроизведения ролика, загрузка другого ролика или веб-странички и т. п. Вариантов здесь очень много. Многие из них мы рассмотрим при изучении языка сценариев ActionScript.

Назад
Компьютерная графика © 2014 ОСУ ИК Вход