Так мы оживили нашу кнопку.
Недостатком такого подхода является то, что при изменении состояния кнопки анимация прекращается слишком резко. Например, если навести курсор на кнопку и убрать, то эллипс установится в нормальное положение, еще не успев закончить оборот.
То же самое с положением Down. Прекращение анимации происходит в любой промежуточной стадии. Это не очень красиво. Было бы лучше, если бы анимация доигрывалась до конца. Как это может быть реализовано, рассказывается в следующем примере.
Анимированная кнопка с доигрыванием
Одним из недостатков кнопок является то, что клипы, помещенные внутрь кнопки недоступны для прямого управления.
Есть способы для решения проблемы.
1. Можно сделать промежуточные переменные-флаги, которые размещаются в корне или в уровнях иерархии, которые выше или равны уровню расположения кнопки. Через переменные отслеживается статус кнопки. Для одной кнопки достаточно одной переменной. Но кроме переменной нужен еще код внутри клипов, которые находятся в кнопке. Этот код должен отслеживать значение переменной и управлять своим клипом, – останавливать его, либо запускать на воспроизведение.
2. Более простой способ подразумевает создание невидимой кнопки позади клипа с анимацией. Код в кнопке переключает анимационные цепочки в клипе. Обходимся без промежуточных переменных.
Рассмотрим второй способ. Он ничем не уступает первому, а в силу большей простоты, можно сказать, что и превосходит его.
Кнопку с доигрыванием рассмотрим на конкретном примере.
Предположим, перед нами стоит задача сделать несколько кнопок для выбора языка на сайте. Чтобы не делать несколько однотипных кнопок, мы сделаем кнопку-клип с изменяемым внешним видом. Изменение всего лишь одной переменной позволит выбирать внешний вид кнопки из списка возможных значений.
Кнопки для выбора языка очень часто делают в виде флагов тех стран, которые четко ассоциируются с носителями языка (для русского языка – флаг России, для английского – флаг Объединенного Королевства Англия, для испанского – Испания)