Основная временная шкала FLA или SWF файла известна как временная шкала root. В ActionScript 2 можно было получить доступ к ней напрямую, используя свойство _root. Такое обращение продолжает существовать в ActionScript 3, но свойство теперь называется root.
В ActionScript 2 также был класс, или объект, называемый Stage.
Используя объект Stage, можно было установить размер окна флеш плеера,
сделать проверку, изменился размер окна или нет, и определить, как
будет выглядеть контент при изменении размеров окна, и т. д. Концепция
stage также существует и в ActionScript 3, но теперь она приобрела
новую форму; вместо того, чтобы быть просто объектом, или статическим
классом, stage является экземпляром, который также выступает как
наивысший объект отображения в иерархии таблицы отображения. Это
контейнер флеш плеера, для которого все другие SWF файлы являются
контентом на экране. Поскольку в ActionScript 2 основная временная
шкала являлась наивысшим объектом отображения в таблице отображения, в
ActionScript 3 наивысшим объектом является экземпляр stage, за которым
следует основная временная шкала (root) в качестве его потомка. Так же
как и со свойством root, вы можете получить доступ к экземпляру stage в
ActionScript 3, используя свойство stage (обратите внимание, "s" в
нижнем регистре).Существуют 2 очень важных особенности root и stage, с которыми вам придется столкнуться при работе с ActionScript 3: 1.
Свойства root и stage в ActionScript 3 не являются глобальными. Эти
свойства выступают взамен свойств класса DisplayObject, поэтому только
экземпляры объектов отображения могут иметь к ним доступ. Другие
классы, а именно пользовательские классы, не имеют доступа, пока другим
классом, имеющим доступ, не будет дан явный доступ к этому классу. 2.
Свойства root и stage будут равны null до тех пор, пока объект
отображения, который ссылается на них, является потомком активной
таблицы отображения. Объекты отображения, находящиеся вне таблицы, не
будут иметь возможности получить доступ к временной шкале root и stage
через соответствующие им свойства.
Эти свойства обычно не применяются, если вы
кодируете внутри временной шкалы во Flash CS3 и не создаете экземпляры
объектов отображения динамически с помощью ActionScript. Это происходит
потому, что вы пишите код ActionScript внутри временной шкалы объекта
отображения, который автоматически добавляется в активную таблицу
отображения, при этом свойства root и stage сразу же становятся
доступными. Создание объектов отображения динамически означает, что вы
работаете с экземпляром, который не находится в таблице отображения и
не имеет доступа к root или stage до тех пор, пока не будет добавлен в
активную таблицу отображения посредством ActionScript // Main timeline in Flash CS3 // The main timeline always has access to root and stage trace(root); // traces "[object MainTimeline]" trace(stage); // traces "[object Stage]" В
приведенном выше примере вы можете видеть, что вывод записи root на
самом деле порождает экземпляр объекта типа MainTimeline. Это
автоматический класс, основанный на MovieClip, который генерирует флеш,
чтобы представить экземпляр, используемый для временной шкалы root. По
существу это просто MovieClip под другим именем. Точно так же, stage
является экземпляром класса Stage (flash.display.Stage). То же самое будет происходить, если поместить этот код на временную шкалу клипа, помещенного на основную временную шкалу.
|