【问题标题】:Flex SWF assets loaded into Flash SWF at runtime within same ApplicationDomainFlex SWF 资源在运行时在同一个 ApplicationDomain 中加载到 Flash SWF
【发布时间】:2010-12-22 05:37:56
【问题描述】:

我正在尝试将 Flex SDK 编译的 swf 加载到 Flash IDE 导出的 swf 中,并通过 getDefinition() 实例化资产。通常,这适用于从 Flash IDE 导出的资源,然后也从 Flash IDE 加载到另一个 swf。

这就是我通常只使用 Flash IDE 就可以做到这一点的方法:
Loader -> 使用相同的 ApplicationDomain -> getDefinition(class)

现在,使用 [Embed] 元数据标记从 Flex SDK 编译的“Test.as”:
Loader -> 使用相同的 ApplicationDomain -> getDefinition("Test_" + class)

问题是我宁愿不必跟踪加载的资产库来为我想获得的类名添加前缀 (('Test_" + class) vs (class )). 有没有什么方法可以在不引用从类中提取的库或不访问原始加载器的情况下执行此操作?这样我就不需要知道资产来自哪个 swf,只需要知道我的类名可以从当前的 ApplicaitonDomain 实例化。

谢谢

【问题讨论】:

  • 深入思考,我认为这是有道理的。 [Embed] 标签将资产嵌入到该类而不是该 fla 的阶段。这就是为什么使用 flex 你必须在定义前加上它嵌入的类而不是它在全局命名空间中可用。我只需要将每个库的类名硬编码到该类型对象的工厂类中,以便实例化它。很抱歉打扰了!

标签: apache-flex flash actionscript-3 loader applicationdomain


【解决方案1】:

您是否尝试过只加载 swf 并在它完全加载时 getDefinition(class)? 没有嵌入

【讨论】:

  • 是的,它就像我上面描述的那样工作,但我试图避免加载一堆单独的 swf。使用 flex 编译器可以将多个 swf 嵌入到一个中,并且可以由服务器端脚本管理,以便在必要时更新和重新编译库。
猜你喜欢
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多