aaa*_*dan 6 apache-flex flash swc actionscript-3
使用Flash CS4,我正在制作一个有十几个声音和几首音乐曲目的游戏.为了减少发布/编译时间,我将声音和音乐移动到(外部)SWC中,该SWC位于项目的"库路径"中.这有效,但有一点需要注意......
在我将资产外部化之前,我通过获取类来动态地实例化Sound嵌入声音的对象getDefinitionByName.
// something like...
var soundSubClass:Class = Class(getDefinitionByName(soundClassName));
var mySound:Sound = new soundSubClass();
Run Code Online (Sandbox Code Playgroud)
但是现在它们位于外部SWC中,我需要对这些类进行"具体"引用,以便像这样加载它们,否则它们不包含在已发布的SWF中,并且在getDefinitionByName尝试时出现运行时错误得到一个不存在的类.
所以,我的问题是:在Flash Professional CS4中,有没有办法强制包含库的资产,无论它们是否静态链接?
FlashDevelop有一个编译器选项"SWC Include Libraries",这正是我想要的,与"SWC Libraries"选项不同."SWC包含库"选项的描述是"将SWC文件中的所有类链接到生成的应用程序SWF文件,无论它们是否被使用."
(另外,对我来说重要的是所有资产都包含在一个已编译的SWF中.在运行时链接不是我想要的.)
不幸的是,我不这么认为。我希望这个问题能在 CS5 中得到解决,但我不敢打赌……
当前(更严重的)标准是在 SWC 中有一个清单类,它引用库其余部分中的所有根类:
public class MyLibManifest {
public static function manifest():void {
var class1:Class = Class1;
var class2:Class = Class2;
// etc...
}
}
Run Code Online (Sandbox Code Playgroud)
然后,在你的主 .fla 中的某个地方...
import com.mylibrary.MyLibManifest;
...
var myLibrary:Class = MyLibManifest;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |