Работа с клипами > Иерархия линеек > Абсолютные и относительные пути
Абсолютные и относительные пути
Путь (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.