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