Добрый день коллеги! На днях обнаружился весьма любопытный момент в работе FlashPlayer версии 10.
В связи с этим решил создать тестовый упрощенный проектик, отражающий суть проблемы.
Имеется 5 swf:
Main.swf - загружает в себя ClassLibrary.swf, GUI1.swf и GUI2.swf
ClassLibrary.swf - библиотека с классами, загружается в main.swf первой
GUI1.swf - SWF, содержащая в себе компонент, текст которого инициализируется надписью "GUI1"
GUI2.swf - SWF, содержащая в себе компонент, текст которого инициализируется надписью "GUI2"
Component.swf - содержит в себе компонент, который импортируется в GUI1.swf и GUI2.swf.
По умолчанию его текст устанавливается в значение TEXT.
Вот объявление его отображения:

Код AS3:
[Inspectable(type="String", defaultValue="")]
public function get text():String{return textField.text;}
public function set text(txt:String):void{
textField.text = txt;
}
Все библиотеки грузятся в одном домене:

Код AS3:
var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
loder.load(new URLRequest(path), context);
В идеале, когда запускаем главную флешку Main.swf, то видим в ней 2 надписи:
GUI1 GUI2.
Но в результате получаем GUI1 и TEXT!
Gui1.swf и GUI2. swf имеют 2 класса с АБСОЛЮТНО одинаковым кодом! Их отличие лишь в сцене: в первой swf на сцене компоненту задано значение "GUI1", во второй - "GUI2".
Но есть одно "НО".
Поскольку проект может быть большим и с огромным количеством swf, флешка ClassLoader.swf импортирует в себя абсолютно все классы, которые есть во всех swf. Дело в том, что несколько swf могут импортировать какой-нибудь общий класс, при изменении которого придется компильнуть ВСЕ swf, которые используют этот класс, что весьма накладно, да и не всегда можно понять, в каких swf конкретный класс используется.
А вот если компильнуть только одну swf, то получится, что в одной swf бинарный код актуальный, а в другой - нет и в таком случае, flashPlayer приминяет код на весь проект только из ПЕРВОЙ загруженной swf, что приводит вообще к непредсказуемым результатам.
Поэтому и было принято решение компилировать весь код в одну swf - ClassLoader.swf и загружать её в main.swf что бы, если придется менять что-то в одном общем классе, используемом в большом количестве swf-ок, компилировать только одну swf.
ТО, что в результате этой схемы мы видим GUI1 и TEXT, результат того, что класс GUI2Class импортирован в ClassLibrary, а GUI1Class - нет. По факту, у флешки GUI2.swf на главной сцене не вызывается сеттер у компонента.
Прошу прощения за бородатось сего вопроса, поэтому прикрепляю ещё и архив с проектом.
TEST - loader.zip
Вопрос: как сделать так, что бы documentClass's компилировались в ClassLibrary, но при этом в соотвестующих им флешках у всех компонентов вызывался их сеттер?