загрузка RSL без использования flex? - PullRequest
1 голос
/ 29 июля 2009

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

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

Ответы [ 2 ]

4 голосов
/ 29 июля 2009

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

Чтобы получить класс из внешне загруженного 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

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

0 голосов
/ 03 мая 2011

Эта ссылка на liveoc может быть полезна: Пример использования ApplicationDomain

...