我在 Flash Builder 4 中创建了一个简单的项目,唯一让 SWC->SWF 发生的方法是创建一个 Flex 项目而不是 ActionScript 项目,并选择“运行时共享库 (RSL)”而不是“外部”。这是因为 Flex 框架有一些类可以为您加载这些库。它还自动化了转换(我应该说是提取)过程。
现在,如果您不想为此创建 Flex 项目,您可以自己提取 SWF。SWC 文件格式只是一个包含 SWF 和描述内容的 XML 文件的 Zip。然后,您可以使用 Loader 动态加载此提取的 SWF 文件并设置正确的Application Domain。这是我的示例项目的片段。
public class Web extends Sprite
{
public function Web()
{
//you will not be able to instantiate classes of your library until it's loaded
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
loader.load(new URLRequest("library.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
}
protected function onLoadComplete(event:Event):void
{
//here you can create instances of classes defined in your library
new Asset();
}
}
您可能认为每次您的设计师更新库时解压缩+复制是一项非常乏味的工作。您可以使用脚本或 Ant 文件自动执行此过程。不幸的是,除非我遗漏了什么,否则 Flash Builder 似乎不希望您扩展构建过程,因此您仍然需要一些手工工作或完全转换为 Ant(或类似的东西)来构建。
祝你好运!