Вы здесь

5. Контекст выполнения сценария

 

Контекст выполнения сценария

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

Необходимость учитывать контекст появляется в том случае, если в сценарии используется несколько объектов или переменных с одинаковыми именами. Например, если вы создадите переменную 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), которые «видны» только в пределах того программного блока, в котором они объявлены.

Top.Mail.Ru