AlexLucas
12.11.2012, 15:47
Доборого времени суток.
Недавно перешёл на флекс, для подгрузки отдельных свф (модулей) использую спарковский ModuleLoader.
1) Во FlashDevelop нет автокомплита для этого компонента, ровно как и для всего spark.modules.*, в импортированных мной *.swc нет классов которые бы конфликтовали с ModuleLoader, но он конфиликтует когда я импортирую и создаю переменную типа mx.modules:ModuleLoader.
2) Для подгрузки множества модулей, я создал очередь, где проверяется если модуль подгрузился, и в этом случае снова вызывается функция подгрузки:
private function loadModule():void {
if (modulesToLoad.length > 0) {
var url:String = modulesToLoad[0];
modulesToLoad.splice(0, 1);
var ldr:spark.modules.ModuleLoader = new spark.modules.ModuleLoader();
ldr.addEventListener(ModuleEvent.READY, onLoadComplete);
ldr.addEventListener(ModuleEvent.ERROR, onLoadError);
ldr.applicationDomain = ApplicationDomain.currentDomain;
ldr.loadModule(url);
}
}
Тут я создаю для каждого вызова отдельный лоадер, и уже в onLoadComplete, после того как я сделал с подгруженным модулем всё что мне надо, убиваю его. Непонятно почему, но когда я создал ещё одну переменную ModuleLoader в этом же классе и заставил её параллельно подгружать дургой модуль, то вообще ничего не подгружается. Если ставлю оба ModuleLoader в очередь, и сначала даю скачать одному, потом другому, подгружается только первый модуль, и всё. Не заходит ни в onLoadComplete, ни в onLoadError, вообще ничего, тишина. По событию ModuleEvent.PROGRESS вижу что модуль подгружается, но до onLoadComplete не доходит.
3) В связи с этим просто создаю один лоадер для всего, эффект тот же что и в 2). Пытаюсь выгрузить модуль перед загрузкой следующего :trace(moduleLoader.child); // TextTool124
moduleLoader.unloadModule();
moduleLoader.loadModule(url);
Это выдаёт ошибку[Fault] exception, information=ArgumentError: TextTool124 is not found in this Group.
Как так!? Выше мы же видим что TextTool124 присутствует. Из какой группы он пытается его удалить? Все модули сами по себе без ошибок и работают нормально.
В общем как-то глючновато, если кто с этим боролся, подскажите пожалуйста что я не так делаю, или может вообще другой способ подгрузки модулей.
Недавно перешёл на флекс, для подгрузки отдельных свф (модулей) использую спарковский ModuleLoader.
1) Во FlashDevelop нет автокомплита для этого компонента, ровно как и для всего spark.modules.*, в импортированных мной *.swc нет классов которые бы конфликтовали с ModuleLoader, но он конфиликтует когда я импортирую и создаю переменную типа mx.modules:ModuleLoader.
2) Для подгрузки множества модулей, я создал очередь, где проверяется если модуль подгрузился, и в этом случае снова вызывается функция подгрузки:
private function loadModule():void {
if (modulesToLoad.length > 0) {
var url:String = modulesToLoad[0];
modulesToLoad.splice(0, 1);
var ldr:spark.modules.ModuleLoader = new spark.modules.ModuleLoader();
ldr.addEventListener(ModuleEvent.READY, onLoadComplete);
ldr.addEventListener(ModuleEvent.ERROR, onLoadError);
ldr.applicationDomain = ApplicationDomain.currentDomain;
ldr.loadModule(url);
}
}
Тут я создаю для каждого вызова отдельный лоадер, и уже в onLoadComplete, после того как я сделал с подгруженным модулем всё что мне надо, убиваю его. Непонятно почему, но когда я создал ещё одну переменную ModuleLoader в этом же классе и заставил её параллельно подгружать дургой модуль, то вообще ничего не подгружается. Если ставлю оба ModuleLoader в очередь, и сначала даю скачать одному, потом другому, подгружается только первый модуль, и всё. Не заходит ни в onLoadComplete, ни в onLoadError, вообще ничего, тишина. По событию ModuleEvent.PROGRESS вижу что модуль подгружается, но до onLoadComplete не доходит.
3) В связи с этим просто создаю один лоадер для всего, эффект тот же что и в 2). Пытаюсь выгрузить модуль перед загрузкой следующего :trace(moduleLoader.child); // TextTool124
moduleLoader.unloadModule();
moduleLoader.loadModule(url);
Это выдаёт ошибку[Fault] exception, information=ArgumentError: TextTool124 is not found in this Group.
Как так!? Выше мы же видим что TextTool124 присутствует. Из какой группы он пытается его удалить? Все модули сами по себе без ошибок и работают нормально.
В общем как-то глючновато, если кто с этим боролся, подскажите пожалуйста что я не так делаю, или может вообще другой способ подгрузки модулей.