不使用 flex 加载 RSL?

发布于 2024-07-29 18:24:30 字数 104 浏览 3 评论 0原文

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

还是我需要遍历flex源代码才能弄清楚adobe的工程师做了什么?

If I have rolled my own RSL, and I want to use it in my pure as3 apps, is there documentation or an example of how to do this?

Or do I need to traverse the flex source code to figure out what adobe's engineers have done?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

極樂鬼 2024-08-05 18:24:30

这是一个非常棘手的问题,恐怕有很多事情需要讨论。 一些提示:

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

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

This is a very tricky one, with lots to go into I'm afraid. Some pointers:

To get a class from an externally loaded SWF use the getDefinition method on an application domain e.g.

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

This will give you the class definition if you know the name of the class you want.

To 'join' class domains into each other (so applications can compile against a swc, but not include the classes and load them externally) you need to specify a loaderContext of the same security domain.

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

The third pointer I can give you is the compiler option "-external-library-path", use this to specify a list of swc's to compile time check against, but not include (resulting in a lower filesize).

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

Sorry I couldn't elaborate more, it's a very expansive topic, hope this gets you started....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文