11

在我们的项目中,我们有大量(数百个)由艺术家在 CS3 中创建的 FLA 文件,我们从中编译 SWF 以在我们的 Flex/AS3 应用程序中使用。

作为流线型构建/部署系统的一部分,能够自动发布所有这些 FLA 并在理想情况下部署 SWF 将非常方便。我找到了一些使用 JSFL 从 CS3 批量发布的方法,但惊讶地发现 CS3 显然没有任何命令行功能?

这是在 Linux 系统上物有所值的,我没有使用 JSFL 的经验,不知道您是否可以以某种方式从命令行运行脚本?

注意:我应该说“首选 Linux”...我不使用 Linux,但我们的服务器/构建 PC 是 Linux...我没有意识到 CS3 不兼容所以我想我们可以在 Windows 上完成这部分.

4

4 回答 4

9

从命令行执行 JSFL 脚本,如下所示:

在 Windows 上:"c:\program files\macromedia\flash 8\flash.exe" myscript.jsfl

在 Mac 上:open myscript.jsfl

我相信旧版本的 Flash 在 Wine 上运行没有问题,但对于 CS3 则不确定。

要遍历一批本地文件,请尝试以下操作(在 JSFL 中):

var importFolder = fl.browseForFolderURL('Select a folder with existing FLA files');
var importFolderContents = FLfile.listFolder(importFolder);
for (i = 0; i <importFolderContents.length; i++) {
    file = importFolderContents[i];
    fl.openDocument(file); // and so on
}

您可能想要调查的其他一些方法是..

fl.getDocumentDOM() document.exportSWF() document.publish() fl.closeDocument()

于 2009-01-28T16:27:14.167 回答
2

你是如何在 Linux 上运行 Flash CS3 的?您不能从命令行运行 JSFL,但应该可以编译 FLA 文件

一些老例子 http://www.mikechambers.com/blog/2003/11/01/flashcommand-flash-2004-command-line-compiler/

Mike Chambers 的更新内容 http://code.google.com/p/flashcommand/用于 OSX

所以这绝对是可能的,似乎只能通过半自动化的 IDE 发布,

太糟糕了 Flex 编译器不具备这样的能力,再加上 ANT 任务,它是一个杀手……使用 FDT 编辑器,事情非常酷且自动化

于 2008-11-04T16:01:04.933 回答
1

就像已经说过的那样,可以使用 JSFL 脚本,尽管您仍然需要具有与 Adob​​e Flash Professional 通信的命令行工具,以将进程记录到标准输出并根据编译结果提供退出代码。

我最终自己编写了这个工具https://www.npmjs.com/package/flc。它基本上是一个将 Adob​​e Flash Professional 抽象出来的命令行界面。针对 Flash Pro 2014 和 2015 进行了测试。

于 2016-09-07T20:02:02.623 回答
0

是的,一点没错。事实上,我已经构建了一个端到端的解决方案,只需单击一个按钮,就会使用版本时间戳更新类文件,如果 Flash 尚未打开,则打开它,打开单个文件进行发布,发出信号当每个文件完成发布时,通过进程间通信实现自动化程序,这样您就不会遇到任何时间问题,并在完成后将特定文件部署到网络(在自动备份它们并为文件名加上时间戳之后),以及整个过程在 10 秒内完成。

在此处查看我的问答:自动发布 FLA 文件;多次调用 Process.Start

于 2014-05-07T21:12:59.477 回答