gpt4 book ai didi

apache-flex - 强制编译时链接 SWC 中的所有类

转载 作者:行者123 更新时间:2023-12-04 14:35:46 26 4
gpt4 key购买 nike

使用 Flash CS4,我正在制作一个有十几个声音和几个音乐轨道的游戏。为了减少发布/编译时间,我将声音和音乐移到了(外部)SWC 中,该 SWC 位于项目的“库路径”中。这有效,但有一个警告......

在我将 Assets 外部化之前,我一直通过使用 Sound 获取它们的类来动态实例化嵌入声音的 getDefinitionByName 对象。

// something like...
var soundSubClass:Class = Class(getDefinitionByName(soundClassName));
var mySound:Sound = new soundSubClass();

但是现在它们位于外部 SWC 中,我需要对类进行“具体”引用才能像这样加载它们,否则它们不会包含在已发布的 SWF 中,并且在 getDefinitionByName 尝试时会出现运行时错误得到一个不存在的类。

所以,我的问题 :在 Flash Professional CS4 中,有没有办法强制包含库的资源,而不管它们是否静态链接?

FlashDevelop 有一个编译器选项“SWC 包含库”,这正是我想要的,并且与“SWC 库”选项不同。 “SWC 包含库”选项的描述是“将 SWC 文件中的所有类链接到生成的应用程序 SWF 文件,无论它们是否被使用。”

(此外,对我来说,重要的是所有 Assets 都包含在一个已编译的 SWF 中。运行时链接不是我所追求的。)

最佳答案

不幸的是,我不这么认为。我希望这在 CS5 中得到修复,但我不会打赌......

当前(加重)标准是在您的 SWC 中有一个 list 类,它引用库其余部分中的所有根类:

public class MyLibManifest {
public static function manifest():void {
var class1:Class = Class1;
var class2:Class = Class2;
// etc...
}
}

然后,在您的主要 .fla 中的某个地方...
import com.mylibrary.MyLibManifest;

...

var myLibrary:Class = MyLibManifest;

关于apache-flex - 强制编译时链接 SWC 中的所有类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2994553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com