Урок № 9.

Простой скрипт "переключателя"

На этом уроке мы научимся манипулировать кадрами символов с помощью скриптов. Мы создадим переключатель, который будет иметь два положения:
включено и выключено - и менять своё состсяние по нажатию кнопки. Кнопку мы возьмём из стандартной библиотеки.
1. Нарисуем переключатель в двух состояниях.
1.1. Нарисуем небольшой круг красного цвета, внутри которого расположим текст "OFF" (выключено).
1.2. Выделим круг и изменим тип и толщину контура. Выберем пунктир толщиной 3. На рисунке видна ткже кнопка, которая будет использоваться для переключения состояний.
1.3. Преобразуем текст и круг в символ Movie Clip.
1.4. Внутри символа вставим во второй кадр "ключевой кадр" и изменим цвет круга на зелёный, тип контура на сплошной, а текст на "ON" (включено)
. Поставим на оба кадра скрипты остановки.
1.5. Вернёмся на главную сцену и выберем символ. В соответствующем поле (в левой части окна Properties (Свойства)) зададим имя символа indicator. Под этим именем символ будет виден в скриптах.
1.6. Откроем библиотеку кнопок (Window||Common Library||Buttons) (Окно||Основные библиотеки||Кнопки) и скопируем оттуда любую кнопку (просто перетащим её на рабочее поле, как мы уже делали на одном из предыдущих уроков).
2. Напишем скрипт переключателя.
2.1. На первый кадр поставим скрипт, в котором выполним присваивание переменной a значения true. Напомню, что делается это в окне Actions (Действия - кадр).
2.2. На кнопку, взятую из библиотеки, "навесим" следующий скрипт:


on (release) {
     if (a) {
          a = false;
          tellTarget (_root.indicator) {
               gotoAndPlay (1);
          }
     } else {
               a = true;
               tellTarget (_root.indicator) {
                    gotoAndPlay (2);
               }
          }
}

 

В этом скрипте обрабатывается событие release - отпускание кнопки мыши в тот момент, когда курсор мыши находится над символом. Мы уже использовали такой обработчик, когда организовывали переход на заданную страницу по нажатию кнопки. Вообще говоря, можно обрабатывать следующие события:
press - нажатие кнопки мыши над символом;
release - отпускание кнопки мыши над символом;
releasOutside - отпускание кнопки мыши вне символа;
keyPress - нажатие определённой кнопки (кнопок);
rollOver - наведение на символ;
rollOut - убирание с символа;
dragOver - перетаскивание над символом;
dragOut - перетаскивание вне символа.
В этом скрипте переменная a используется как флажок, который меняет значение при каждом нажатии на кнопку. Оператор tellTarget адресует предписания объекту, который является его параметром. В первом случае (ветка if (a)) мы предписываем объекту indicator перейти к первому кадру и начать выполнение (напомним, что на первом же кадре всё и закончится, поскольку на нём стоит скрипт остановки). Во втором случае производится переход ко второму кадру объета indicator. Ссылка на indicator записывается как _root.indicator, поскольку объект находится в основной ("корневой", root, сцене).