ActionScript краткий обзор

       

Абсолютные и относительные пути


Путь (target path) ? это указатель на интересующую вас линейку. Список (disply list) линеек во Flash очень похож на иерархию файловой структуры Web-сервера.

Movie Explorer отображает список клипов во время создания исходного FLA-файла (Authoring Mode).

Как и в примере с Web-сервером, каждая линейка во Flash может быть адресована двумя способами: с помощью абсолютного или относительного путей. Абсолютный путь каждого элемента никогда не меняется, независимо от того, какая линейка вызывает текущую команду; например, абсолютный путь к элементу california всегда _level0.westCoast.california. Относительный путь всегда зависит от того, откуда он строится; например, относительный путь к california из sanfrancisco будет _parent, но из portland, он станет _parent._parent.california.

Замечание: Для более подробной информации о Movie Explorer, см. Flash Help.

Абсолютный путь начинается с имени слоя, на который загружен клип. Его продолжение можно проследить с помощью выводимого списка (display list) вплоть до достижения указанного элемента.

Первый открываемый ролик во Flash-плейере загружается на нулевой слой (level 0). Необходимо назначать каждому дополнительно загружаемому ролику номер слоя. Указывающее имя (target name) для слоя: _levelX, где X ? номер слоя, на который загружается клип. Например, первый открываемый во Flash-плейере ролик называется _level0, ролик загруженный на третий слой ? _level3.

В следующем примере два ролика загружены в плейер: TargetPaths.swf на слой 0 и EastCoast.swf на слой 5. Слои указываются в отладчике (Debugger), слой 0 имеет обозначение _root.

Отладчик показывает абсолютные пути всех линеек в листе в режиме Test-Movie.

Элемент всегда имеет один и тот же абсолютный путь, вызывается ли он командой от элемента того же слоя или командой из другого слоя. Например, элемент bakersfield в слое 0 всегда имеет следующий абсолютный путь в дот-синтаксисе:

_level0.california.bakersfield

С помощью слэшей абсолютный путь будет выглядеть следующим образом (точки заменены на слэши):






_level0/california/bakersfield

Для взаимодействия между роликами на разных слоях нужно указывая путь, использовать имя слоя. Например, элемент portland будет адресовать элемент atlanta следующим образом:

_level5.georgia.atlanta

В точечном синтаксисе можно использовать ключевое слово _root для ссылки на главную линейку текущего уровня. Для главной линейки или _level0, обозначение _root соответствует _level0, если указывается клипом, также расположенном на _level0. Для ролика, загруженного в _level5, _root соответствует _level5 , если указывается клипом, также размещённом в слое 5. Например, команда вызываемая элементом southcarolina может использовать следующий абсолютный путь для указания элемента florida:

_root.eastCoast.florida

В слэш-синтаксисе можете использовать / для ссылки на главную линейку текущего слоя, так, как сделано в этом случае:

/eastCoast/florida

В дот-синтаксисе либо в режиме Absolute либо в Relative можно использовать те же правила формирования пути, чтобы идентифицировать переменную на линейке или свойство объекта. Например, в следующем выражении имени элемента form присваивается значение "Gilbert":

_root.form.name = "Gilbert";

В слэш-синтаксисе либо в режиме Absolute либо в Relative идентификация переменной осуществляется с помощью двоеточия (:) перед её именем:

/form:name = "Gilbert";

Относительный путь зависит от взаимосвязей между управляющей и указываемой линейками. Можете использовать относительный путь для повторного использования команд, потому что одна и та же команда может указывать на разные линейки, в зависимости от расположения команды. Относительные пути могут адресовать объекты только внутри одного определённого уровня во Flash-плейере; они не могут адресовать ролики загруженные в другие уровни. Например, нельзя использовать относительный путь в команде в слое _level0, указывающей на уровень _level5.

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



В следующем примере каждый город (charleston, atlanta и staugustine) является дочерним по отношению к элементу "штат" и каждый штат (southcarolina, georgia и florida) ? потомок элемента eastCoast.



Movie Explorer показывает отношения клипов "родители-дети".

Команда на линейке элемента charleston может использовать следующий путь для указания элемента southcarolina:

_parent

Чтобы указать элемент eastCoast из команды в charleston, возможен следующий относительный путь:

_parent._parent

В слэш-синтаксисе для перехода на одну ступень иерархии вверх, используется две точки (..). Чтобы указать eastCoast из команды в charleston, относительный путь примет вид:

../..

Чтобы указать на элемент atlanta из команды на линейке charleston, в дот-синтаксисе относительный путь будет следующим:

_parent._parent.georgia.atlanta

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

onClipEvent (load) { _parent._xscale = 150; _parent._yscale = 150; }

Вы можете затем многократно использовать этот скрипт, помещая его на линейку любого клипа.

Для более подробной информации об адресации и точечном синтаксисе см. Главу 2, "Написание скриптов с помощью ActionScript".

Для более подробной информации о дот-синтаксисе (Dot) и слэш-синтаксисе (Slash) см. Использование синтаксиса ActionScript.


Содержание раздела