У экранных объектов на сцене flash-роликов и в ActionScript 2.0, и в ActionScript 3.0 имеется свойство parent (в ActionScript 2.0 это свойство пишется как "_parent"). Свойство parent позволяет обратиться к "родителю" (отсюда и название свойства). Родителем будет тот объект, который стоит на уровень выше в иерархии экранных объектов (про иерархию списка отображения в ActionScript 3.0 см. «Список отображения в ActionScript 3.0»).
Например, если в MovieClip под именем "mc1" (напомню, что имена мувиклипов в Macromedia/Adobe Flash можно задать через панель Свойств) вложен другой мувиклип под именем "mc2", то родителем для мувика "mc2" будет мувиклип "mc1". Возможно, звучит немного запутанно, но ничего сложного тут нет. Давайте рассмотрим это на наглядном примере.
Пусть у нас на сцене флеш-ролика будет мувиклип с именем "mc1". В этот мувик мы вложим ещё один мувиклип, но уже под именем "mc2". А в MovieClip "mc2" поместим ещё один мувик под именем "mc3". Получилась "матрёшка": в "mc1" вложен "mc2", а в "mc2" вложен "mc3". На рабочем столе редактора Adobe Flash это выглядит следующим образом:
Для большей наглядности все мувиклипы подписаны своими именами.
А теперь давайте узнаем, кто является "родителем" для мувиклипа "mc3". Делается это невероятно просто...
ActionScript 2.0:
trace(mc1.mc2.mc3._parent._name)
или
ActionScript 3.0:
trace(mc1.mc2.mc3.parent.name)
Фактически, мы спросили у мувиклипа mc3 следующее: "Какое имя (name) у твоего родителя (parent)?". И он нам честно ответил, что его родителя зовут "mc2".
В приведённом ниже флеш-ролике кликните по любому из трёх мувиклипов и в текстовом поле будет выведено имя родительского элемента:
Но через свойство parent можно обращаться не только к "родителю", но и к "родителю родителя". Давайте, для примера, узнаем, как зовут "дедушку" мувиклипа "mc3":
ActionScript 2.0:
trace(mc1.mc2.mc3._parent._parent._name)
или
ActionScript 3.0:
trace(mc1.mc2.mc3.parent.parent.name)
Оба варианта вернут одно и тоже имя - "mc1". Можно узнать, кто приходится "дедушкой" и для других мувиклипов:
Подобным образом можно обратиться и к "прадедушке" (объект.parent.parent.parent), и к "прапрадедушке" (объект.parent.parent.parent.parent), и так далее. Впрочем, такая практика считается "дурным тоном" и, как правило, свидетельствует об ошибках, допущенных на этапе проектирования флеш-приложения.
Важно заметить, что свойство parent доступно только для чтения. Попытка записать новое значение в свойство parent приведёт к ошибке:
Спасибо за внимание...
Для изменения или создания переменной в родительский уровень требуется обратиться через MovieClip или же через Object
var N:Number=null //Объявляем переменную N
MovieClip(parent).N=10 // Создаем переменную N в родительском уровне
trace(MovieClip(parent).N)