загрузка RSL без использования flex?

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

Или мне нужно просмотреть исходный код flex, чтобы понять, что сделали инженеры Adobe?


person jedierikb    schedule 29.07.2009    source источник


Ответы (1)


Это очень сложный вопрос, и я боюсь, что в него нужно много вникать. Некоторые указатели:

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

public function loadHandler(evt:Event):void
{
   var loaderInfo:LoaderInfo = evt.target as LoaderInfo;
   var clazz:Class = loaderInfo.applicationDomain.getDefinition("your.external.class");
}

Это даст вам определение класса, если вы знаете имя нужного класса.

Чтобы «присоединить» домены классов друг к другу (чтобы приложения могли компилироваться с помощью swc, но не включать классы и загружать их извне), вам необходимо указать loaderContext того же домена безопасности.

var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext();
context.applicationDomain = ApplicationDomain.currentDomain;
loader.load(new URLRequest("library.swf"), context);

Третий указатель, который я могу вам дать, - это параметр компилятора "-external-library-path", используйте его, чтобы указать список swc для проверки времени компиляции, но не включать (что приводит к меньшему размеру файла).

mxmlc -source-path="dir/src" -external-library-path="dir/lib/framework.swc" --main.swf

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

person enzuguri    schedule 29.07.2009
comment
Будет ли это также работать для кэширования rsls, чтобы их можно было использовать повторно? - person ThanksBro; 23.04.2013