2009-08-27 123 views
2

我们有一个小部件(SWF)需要分解为两个SWF。主要的SWF将包含所有的编程和业务逻辑,它还将加载第二个SWF文件,其中将包含资产,字体等。Flash,ActionScript:从外部SWF加载资源

我在Flash方面的经验有限,但我知道它可以在Flex中完成。无论如何,我们必须在Flash CS3中做到这一点。在Flash中可以做到这一点吗?如果是,我们需要遵循哪些步骤?

感谢, 斯里兰卡

回答

2

看一看的Loader类。代码可以比例子中的代码简单,但这是一个开始。在flashandmath.com网站上有一个很好的解释教程。

在你的主fla(带逻辑)中,创建一个Loader,告诉它加载Event.INIT上的资产,使用资产。

3

从外部SWF加载资源时,实例化存储在外部SWF中的类通常很有用 - 例如,字体通常以这种方式访问​​。

当您这样做时,您必须确保您的本地SWF具有这些类的定义,并且仅将这两个SWF文件编译在一起并不能保证。更具体地说,如果在SWF上依赖于另一个类中的类,那么这两个SWF文件最终都会携带类定义的副本,并且当您在运行时中加载外部SWF文件时,您将获得投射错误,因为VM不知道相同在外部SWF中命名的类与您所拥有的完全相同。

为解决此问题,您需要在加载的SWF上使用ApplicationDomain.getDefinition() - 请参阅detailed example。除了关于如何使用Loader的详细示例之外,他们还展示了如何从外部SWF获取Class对象。