如果我推出了自己的 RSL,并且我想在纯 as3 应用程序中使用它,是否有文档或示例说明如何执行此操作?
还是我需要遍历flex源代码才能弄清楚adobe的工程师做了什么?
如果我推出了自己的 RSL,并且我想在纯 as3 应用程序中使用它,是否有文档或示例说明如何执行此操作?
还是我需要遍历flex源代码才能弄清楚adobe的工程师做了什么?
这是一个非常棘手的问题,恐怕有很多事情要做。一些指示:
要从外部加载的 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
抱歉,我无法详细说明,这是一个非常广泛的话题,希望这能让你开始......