PDA

Просмотр полной версии : Модули и ApplicationDomain


Sneg
25.07.2010, 02:39
Добрый день.

Имеется модуль, который может несколько раз подгружаться/выгружаться (Flex 4). Сам модуль грузится как ByteArray, при загрузке используется следующий ApplicationDomain:

var parentDomain:ApplicationDomain = ApplicationDomain.currentDomain;
var applicationDomain:ApplicationDomain = new ApplicationDomain(parentDomain);

moduleInfo.load(applicationDomain, null, byteArray);


После выгрузки и повторной загрузки модуля, происходит ошибка кастинга внутренних классов модуля в друг друга (невозможно привести ExampleClass в ExampleClass), происходит она в файле стиля - стиль вкомпилен в модуль. Если засунуть классы модуля в библиотеку и загружать её как RSL, то ошибки не возникает (оно и понятно), но этого категорически не хотелось бы делать - каким способом еще можно решить эту проблему и не совсем понимаю, почему она образовалась.

etc
27.07.2010, 18:25
Значит где-то остаются ссылки на части модуля и он не выгружается целиком.

Sneg
29.07.2010, 19:02
Решил проблему следующим образом. В компонентах стиля не использовать в качестве hostComponent'a один классов модуля, который может выгружаться и загружаться снова. Только стандартные для SDK компоненты, ошибка эта происходит именно в стилях модуля, судя по всем после выгрузки самого модуля его стили не выгружаются (динамическая загрузка/выгрузка стиля, как стороннего swf не помогла)