Как: Flex-модуль со своими собственными пользовательскими RSL, загруженными только в дочерний домен ApplicationDomain? - PullRequest
1 голос
/ 08 апреля 2011

У меня сложное приложение. Я использую Flex 4.1 RSL и настраиваемые RSL для всех моих библиотек (и таких как 15 пользовательских SWC - Flex Library Project)

Я хотел бы загрузить основное приложение с минимальными необходимыми RSL, а затем загрузить модуль Flex со всеми другими RSL в фоновом режиме, пока пользователи взаимодействуют с первой частью приложения.

Основному приложению нужно 3 SWC, модулю нужны остальные (12).

Если у меня есть один проект Flash Builder Apllication с Application.mxml, где у меня есть все связанные RSL (как RSL) и Module.mxml

Как мне решить эту проблему, чтобы RSL загружались с модулем в дочерний домен приложения?

В настоящее время я использую:

info = ModuleManager.getModule(URL);
info.load(new ApplicationDomain(ApplicationDomain.currentDomain));

... поэтому он должен загружаться в новый домен приложения, , но RSL уже предварительно загружены в родительский домен! .

Я использую статические поля / синглтон в моем модуле, поэтому я не могу загрузить их больше.

Если бы я мог загрузить Module с его RSL в дочерний домен приложения, определения классов были бы разделены, и я мог бы использовать два модуля, каждый со своими статическими полями.

Ответы [ 2 ]

1 голос
/ 10 мая 2011

Решение пришло с Flex 4.5 - Введение в RSL

Использование заполнителей RSL

Когда вы компилируете приложение с Flex, поведение по умолчанию:скомпилируйте приложение в соответствии с базовыми (или стандартными) RSL.Когда приложение запускается, оно загружает только те базовые RSL, которые оно фактически использует, и создает заполнители для оставшихся базовых RSL.Когда приложение загружает модуль или вспомогательное приложение, для которого требуется один из базовых RSL, для которых имеется заполнитель, модуль или вспомогательное приложение затем загружают этот RSL в основное приложение.

см. Adobe Flex 4.5 - Введение в RSL @ help.adobe.com

1 голос
/ 10 мая 2011

Почему бы не попробовать вдохновленную OSGI Potomac модульную структуру?Это позволяет вам гораздо более точно контролировать загрузку активов.Это может потребовать некоторого рефакторинга, но тот факт, что в вашем приложении имеется 15 различных скомпилированных ресурсов, предполагает, что вы уже думаете по модульному принципу.

РЕДАКТИРОВАТЬ:

Я должен отметить, что Potomac будетзагрузите все «пакеты» в домен приложения, но это решит проблему загрузки ресурсов по требованию.Я не уверен, какая часть вашей проблемы является наиболее важной.Вы также можете посмотреть подпрограммы , которые могут соответствовать или не соответствовать вашим требованиям.

...