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

标签 apache-flex flash actionscript-3 swc

使用 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/

相关文章:

apache-flex - flex rpc.soap.Operation::send 期间阻塞了 Flash UI

flash - 如何在Flex中进行CPU分析?

actionscript-3 - as3中的动画 "blob"

actionscript-3 - 加载和卸载多语言 Flex 应用程序的字体

java - Java EE 或 Flash 中的开源聊天应用程序?

apache-flex - 富 UI 桌面应用程序采用什么技术?

flash - 访问 Flash CS3 AS3 项目中的 Web 服务

actionscript-3 - 获取 swf bool 参数

apache-flex - Flex 3,组件 ID 和 URLS——连字符与下划线

apache-flex - 不可变性和 Flex 是一个糟糕的组合吗?