在不使用flex的情况下加载RSL?

时间:2009-07-29 16:58:41

标签: flex flash actionscript-3 rsl

如果我已经推出了自己的RSL,并且我想在我的纯as3应用程序中使用它,是否有文档或如何执行此操作的示例?

或者我是否需要遍历flex源代码以找出adobe的工程师做了什么?

2 个答案:

答案 0 :(得分:4)

这是一个非常棘手的问题,我很害怕。一些指示:

要从外部加载的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

抱歉,我无法详细说明,这是一个非常广泛的话题,希望这能让你开始......

答案 1 :(得分:0)

有关livedoc的这个链接可能很有用: Example on how to use ApplicationDomain