В этой статье я расскажу как загрузить и получить доступ к библиотеке (library) загруженного SWF файла, и использовать её элементы как классы. Это может пригодиться когда вы работаете над проектом с несколькими людьми одновременно и один из них делает дизайн в отдельном SWF файле, а вам необходимо получить доступ к его билблиотеке чтобы использовать её элементы. Или вы создаете один SWF файл, как хранилище информации, а потом загружаете его в основной рабочий мувик.
Доступ к библиотеке загруженной SWF`ки можно получить с помощию applicationDomain.
Сейчас я проиллюстрирую как это сделать:
Для начала создадим два SWF файла. В одном, “dataSWF.swf“” из них будет содержаться библиотека с MuvieClip`ом с именем, например, “Data” (не забудте поставить галочку напротив Export for ActionScript в закладке Properties, также проследите чтобы в колонке Class было написано “Data“) . В другом, “mainSWF.swf“, класс с помощью которого загружается “dataSWF.swf“.
пример кода:
- var myLoader:Loader = new Loader();
- myLoader.load( new URLRequest ( ”dataSWF.swf” ) );
- myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);//Загрузка завершена
Здесь все понятно, грузим ”dataSWF.swf” и запускаем onLoaded когда он полностью загружен
- function onLoaded(event:Event):void
- {
- //!!!!!!!!!!!!!!!!ДОСТУП ПОЛУЧАЕМ СДЕСЬ !!!!!!!!!!!!!!!!!!!!//
- var Data:Class = event.target.applicationDomain.getDefinition(”Data”) as Class// Получаем доступ к классу Data из библиотеки dataSWF.swf
- var myData:MovieClip = new Data() as MovieClip;//создаем мувиклип из Data
- addChild( myData);//Добавляем myData на stage :)
- }
Вот вприципе все
RSS Feed
Twitter
Posted in
Tags: 
Спасибо тебе за статью. Ломал голову целый день, пока не нашёл у тебя решение.
Правда есть опечатка на которую ругается компилятор.
var myData = new Data() as MovieClip;//создаем мувиклип из Data
Warning: 3596: Duplicate variable definition.
в 9 строке “var” лишнее))
Спасибо, исправил.