Я думаю, что статья, на которую вы ссылались, довольно хорошо подводит итог (даже если она не объясняет все это так хорошо):
Подводя итог: один этап, один корень на SWF (которыйявляется основной временной шкалой), и этот корень является экземпляром класса документа или класса MainTimeline, если класс документа не предоставлен
Этап, вероятно, наиболее прост для понимания.В Flash Player есть одна сцена - это окно, в котором воспроизводится Flash-фильм. Это самый верхний экранный объект - все, что появляется на экране, является дочерним элементом сцены.Этап всегда один и тот же экземпляр, и любая ссылка на этап возвращает одно и то же значение.
Корень - это логическая «вершина» иерархии отображения для конкретного SWF-файла.Как объясняется в статье, каждый SWF-файл будет иметь свой собственный корень, который ссылается на экземпляр класса документа для этого SWF-файла.
Вы можете увидеть различие между root и stage при загрузке одного SWF-файла в другой во время выполнения.Оба SWF-файла будут иметь разные корни, но одинаковую стадию.Корень в каждом SWF-файле будет ссылаться на самый верхний экранный объект их собственного SWF-файла, который является их классом документа.
MainTimeline - это класс по умолчанию, используемый для класса документа.Класс документа - это экранный объект, который добавляется на сцену при загрузке фильма SWF.Внизу это нормальный класс, который расширяет MovieClip.
Класс документа - это мувиклип, который вы видите в редакторе Flash.Здесь хранится код временной шкалы и добавляются анимации временной шкалы.Класс документа может быть переопределен пользовательским классом.Изменение класса документа изменит имя объекта, на который ссылается root.
Так же, как меня называют «Человек», временная шкала по умолчанию называется «MainTimeline».Если бы мои атомы были искажены в телепортере, и я был изменен на другой тип вещи, такой как «FreakOfNature», это было бы похоже на изменение документа на другой класс - в результате, временная шкала стала быразные типы вещей.
Вот тест, который вы можете сделать, чтобы проиллюстрировать, как связаны сцена, корень и документ:
1. Создайте пустой FLA-файл и добавьте следующий код временной шкалы:
trace("this " + this);
trace("root " + root);
trace("root.parent " + root.parent);
trace("stage " + stage);
trace("parent " + parent);
2. Запустите FLA и запишите вывод.Обратите внимание, что код временной шкалы находится в классе, который расширяет фрагмент ролика с именем «MainTimeline».Это тот же экземпляр, на который ссылается root.Родителем экземпляра MainTimeline является Stage.
this [object MainTimeline]
root [object MainTimeline]
root.parent [object Stage]
stage [object Stage]
parent [object Stage]
3. Установите класс документа в свой собственный класс (например, «Test»).Обратите внимание, что класс на самом деле не должен существовать - Flash предложит вам создать его автоматически.
![enter image description here](https://i.stack.imgur.com/hRVMB.png)
4. Запустите FLA и запишите новый вывод.Обратите внимание, что код временной шкалы теперь находится в другом классе, который расширяет фрагмент ролика, который называется «Тест».«Тест» - это тип фрагмента ролика, который добавляется на сцену.
this [object Test]
root [object Test]
root.parent [object Stage]
stage [object Stage]
parent [object Stage]
Из этого видно, что Flash использует класс документа по умолчанию MainTimeline для класса документа, если он не переопределенсвоя.Экземпляр класса документа (будь то MainTimeline или ваш собственный класс) добавляется на сцену при загрузке SWF.