我们有一个小部件 (SWF),需要将其分解为两个 SWF。主 SWF 将包含所有编程和业务逻辑,并且还将加载第二个 SWF 文件,其中包含资源、字体等。
我在 Flash 方面的经验有限,但我知道可以在 Flex 中完成。无论如何,我们必须在 Flash CS3 中进行。在 Flash 中可以做到这一点吗?如果是,我们需要遵循哪些步骤?
谢谢, 斯里兰卡
最佳答案
从外部 SWF 加载资源时,实例化存储在外部 SWF 中的类通常很有用 - 例如,通常以这种方式访问字体。
执行此操作时,您必须确保本地 SWF 具有这些类的定义,并且仅将两个 SWF 文件一起编译并不能保证这一点。更具体地说,如果一个 SWF 依赖于另一个 SWF 文件中的类,那么两个 SWF 文件最终都会携带类定义的副本,并且当您在运行时加载外部 SWF 文件时,您会遇到转换错误,因为虚拟机不知道相同的内容外部 SWF 中的命名类与您拥有的完全相同。
为了解决该问题,您需要在加载的 SWF 上使用 ApplicationDomain.getDefinition()
- 请参阅此处的 detailed example 。除了有关如何使用 Loader
的详细示例之外,它们还展示了如何从外部 SWF 获取 Class
对象。
关于Flash、 ActionScript : Load assets from external SWF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1338963/