|
.
модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
|
Если граф в виде дерева (иерархии) вас не пугает, то всю эту флешовую байду можно спокойно понять. Самый Главный объект -- это Stage. К нему крепится самый первый объект создаваемой swf (загрузчика) это его экземпляр Document class. По сути, когда из любого объекта поддерева, принадлежащего этому Document class, вы обращаетесь к свойству root, оно всегда покажет на экземпляр Document class. Это справедливо и для loaderInfo.url, но, повторюсь, поддерево должно находиться в родственных отношениях к Document class, т.е. должно существовать в его графе.
Теперь представьте, что мы загрузили другую swf. У неё есть свой документ класс. Кстати, это понятие (Document class) не очень официальное и не совсем передает суть. Как так: говорю об экземпляре и одновременно о классе? Скорее оно пошло из Flash IDE, в котором было поле для заполнения названия главного класса, точке входа в приложение. Кстати, именно поэтому у точки входа есть stage в конструкторе, но только у т.н. Stage owner приложения, запускаемого самым первым. Остальные подгружаемые не имеют stage в своем конструкторе. О, вернемся к загрузке. У той swf есть свой экземпляр своего документ класса. Который крепится к графу в точке Stage. Так вот, нода первого экземпляра swf и нода второй swf являются поддеревами их самих. Если из любого визуального объекта, находящегося в этих поддеревах, спросить откуда он был загружен через свойства DisplayObject#loaderInfo#url, то они честно расскажут.
|