AS3在外部swf中嵌入或导入所有类,而不单独引用每个类

6 actionscript-3

我有一个ArtLibrary.swf文件,其中有数百个带有类名的MovieClip.我希望能够在我正在使用的多个不同的Flash文件中使用这些电影,但我不知道在使用和嵌入命令后如何正确引用它们.

以下作品:

[Embed(source="ArtLibrary.swf", symbol="BirdBodyColor_mc")]
var BirdBodyColor_mc:Class;

myMC:MovieClip = new BirdBodyColor_mc();
addChild(myMC);
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我不确定如何引用"master类"中的各个类.

[Embed(source="ArtLibrary.swf")]
var MasterClass:Class;

myMC:MovieClip = new BirdBodyColor_mc();
addChild(myMC.BirdBodyColor_mc);
Run Code Online (Sandbox Code Playgroud)

Bra*_*all 4

与其使用 SWF,不如使用 SWC。要创建 SWC,只需进入 Flash Pro 的发布设置,然后转到 Flash 选项卡并选择“导出 SWC”。SWC 包含 SWF 和一个特殊清单,其中包含 Flash 需要了解的有关 SWF 中的类的所有信息。

然后,要在另一个项目中使用 SWC,请转到 AS3 设置(也在发布设置的 Flash 选项卡中),转到“库路径”选项卡并添加 SWC(绝对路径和相对路径都可以正常工作)。

请注意,这仅适用于 CS4 或 Flex(对于 Flex,我相当确定您可以将 SWC 拖到您的项目中,但我会检查这一点)。

现在 - 如果您想加载 SWF 并在运行时使用它的资源,那就完全不同了。为了使其正常工作,您需要摆弄 Loader 类和 ApplicationDomain,以便将这些类放入正确的域中。这里有一些关于这个主题的好信息:

http://www.kirupa.com/forum/showpost.php?p=2123134&postcount=366