Учебник по Flash MX
Разделы Flash MX
  • Новые возможности Flash
  • Введение в технологию Flash
  • Основы работы с Flash MX
  • Работа с отдельными объектами
  • Рисование
  • Работа с цветом
  • Работа с текстом
  • Анимация
  • Слои
  • Создание и редактирование символов
  • Создание интерактивных фильмов
  • Публикация фильма
    Глава 11. Создание интерактивных фильмов
  • Панель Actions
  • Общие сведения об ActionScript
  • Объектная модель ActionScript
  • Контекст выполнения сценария
  • Интерфейс панели Actions
  • Вызов панели Actions
  • Режим Normal Mode
  • Режим Expert Mode
  • Создание сценария для кнопки
  • Управление воспроизведением фильма
  • Переход по заданному URL
  • Загрузка дополнительных фильмов
  • Создание сценария для кадра
  • Создание сценария для клипа
  • Компоненты
  • Флажки
  • Переключатели
  • Кнопки
  • Списки
  • Комбинированный список
  • Прокручиваемая область
  • Редактирование компонентов
  • Озвучивание фильма
  • Контекст выполнения сценария

    Контекст выполнения сценария определяет доступность и относительные адреса объектов и других программных величин (переменных), используемых в сценарии.

    Необходимость учитывать контекст появляется в том случае, если в сценарии используется несколько объектов или переменных с одинаковыми именами. Например, если вы создадите переменную framePS для хранения скорости воспроизведения основного фильма, а затем — переменную с таким же именем (чего не бывает) для конкретного клипа, то рано или поздно сценарий сработает не так, как предполагалось.

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

    С каждой временной диаграммой связан специальный параметр — уровень диаграммы (он обозначается с помощью ключевого слова _ level), который определяет ее положение относительно других временных диаграмм, загруженных в Flash-плеер. По умолчанию временная диаграмма основного фильма имеет нулевой уровень. Каждой вызываемой из нее временной диаграмме присваивается уровень, на единицу больший (рис. 11.3).

    Рис. 11.3. Иерархия временных диаграмм, загруженных в Flash-плеер

    Таким образом, область действия переменных в Flash-фильме распространяется сверху вниз: имя переменной, созданной в сценарии временной диаграммы основного фильма, «видно» в сценарии следующего уровня, если в нем нет своей переменной с таким же именем.

    Кроме того, внутри программного блока сценария, ограниченного фигурными скобками, могут объявляться локальные переменные, которые «видны» только в пределах этого блока.

    Для управления областью видимости переменных в ActionScript используется понятие «путь назначения» — target path. Путь назначения позволяет указать принадлежность объекта или переменной конкретной временной диаграмме, загруженной в Flash-плеер.

    Чтобы правильно записать путь назначения, необходимо учитывать объектную модель ActionScript и взаимное положение временных диаграмм. Например, если вы хотите указать, что требуется перейти к 10-му кадру основного фильма и воспроизвести его, вы можете записать такую конструкцию:

    Jevel0.gotoAndPlay(l 0).

    Возможны два варианта указания пути назначения: абсолютный и относительный.

    Абсолютный путь вычисляется, как правило, на основе уровня временной диаграммы (как в приведенном выше примере). Указав в качестве отправной точки уровень диаграммы, вы можете быть уверены, что Flash-плеер правильно отыщет адресата, даже после того, как вы переместите фрагмент сценария, из которого выполнено обращение.

    Относительный путь вычисляется с учетом положения той диаграммы, из которой выполняется обращение. Такой вариант более компактный, но менее надежный. Например, чтобы обратиться к кадру диаграммы, расположенной двумя уровнями выше текущей, можно записать такую конструкцию:

    _parent._parent.muClip.

    Однако после перемещения клипа, например, на более высокий уровень, относительная ссылка станет некорректной.

    Итак, при создании сценариев на ActionScript возможно использование трех типов переменных, различающихся областью видимости:

    • глобальные (Global variables), которые доступны в сценарии любой временной диаграммы;
    • переменные временной диаграммы (Timeline variables), которые доступны из любой временной диаграммы при условии, что для обращения к ним используется путь назначения (target path);
    • локальные (Local variables), которые «видны» только в пределах того программного блока, в котором они объявлены.