Руководство по actionscript. часть 6, стр. 042
К объекту ApplicationDomain SWF-файла можно обратиться через его объект Loaderlnfo, который доступен через переменную loaderlnfo любого экземпляра класса DisplayObject данного SWF-файла. Полностью уточненное имя для основного класса SWF-файла можно получить с помощью метода flash. utils. getQualifiedClassName ( ). Как только приложение Module. swf будет загружено, внутри приемника события Event. INIT в приложении Main. swf мы можем использовать следующий код для получения ссылки на основной класс приложения Module. swf:
var ModuleClassName:String = getQualifiedClassName(e. target. content); var appDomain:ApplicationDomain =
e. target. content.1oaderInfо. appli cati onDomai n: // После выполнения следующей строки кода переменная ModuleClass будет // ссылаться на основной класс приложения Module. swf var ModuleCl ass:Class = appDomain. getDefinition(ModuleClassName);
Получив ссылку на класс Module, мы можем использовать ее для создания новых объектов:
var newModule:Object = new ModuleClass( );
I Как всегда, обязательно дождитесь завершения процесса инициализации загружаемого SWF-м?; d „ файла перед тем, как обратиться к нему. Метод getDefinition() должен применяться только fffi после того, как среда выполнения Flash осуществит диспетчеризацию события Event. INIT.
Обратите внимание, что в предыдущем коде типом данных переменной newModule является Ob j ect, а не Module, поскольку в данном примере приложение Main. swf не имеет непосредственного доступа к основному классу приложения Module. swf. Таким образом, для любых последующих обращений к методам и переменным класса Module через переменную newModule типы не будут проверяться вплоть до этапа выполнения. Если проверка типов требуется на этапе компиляции, вместо метода getDefinition ( ) используйте методики путей исходных файлов, путей библиотек или путей внешних библиотек.
Стоит отметить, что методики, рассмотренные в этом разделе, можно применять не только для создания нового экземпляра SWI^-файла, но и для создания экземпляра любого символа из этого SWF-файла. Предположим, что мы хотим создать экземпляр символа с именем Ball из приложения Module. swf. Для этого нам придется экспортировать символ Ball для кода на языке ActionScript, а затем выполнить одно из следующих действий:
? получить ссылку на экспортированный класс Ball, используя метод экземпляра getDefinition ( ) класса ApplicationDomain;
? сделать так, чтобы класс Ball был непосредственно доступен для приложения Main. swf, используя методику путей исходных файлов, путей библиотек или путей внешних библиотек.