2008-11-04 69 views
9

在我们的项目中,我们有大量(数百)由CS3中的艺术家创建的FLA文件,我们从中编译SWF以用于我们的Flex/AS3应用程序。是否可以从命令行发布FLA?

作为简化的构建/部署系统的一部分,能够自动发布所有这些FLA以及理想地部署SWF也是非常方便的。我发现了一些使用JSFL从CS3进行批量发布的方法,但很惊讶地发现CS3显然没有任何命令行功能?

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

note:我应该说“Linux是首选”...我不使用Linux,但我们的服务器/构建PC是Linux ...我不知道CS3不兼容,所以我想我们可以在Windows上完成这一部分。

回答

2

如何在Linux上运行Flash CS3? 您不能从命令行运行JSFL但在编译FLA文件应尽可能

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

较新的东西从迈克钱伯斯 http://code.google.com/p/flashcommand/的OSX

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

太糟糕Flex编译器是不能够这样的事情,与ANT任务一起它是一个杀手... ... 与FDT编辑器t hings是很酷,自动化

8

在命令行就这样执行您的JSFL脚本:

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

在Mac上:open myscript.jsfl

我相信旧版本的Flash跑酒没有问题,但没有确定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() ​​ fl.closeDocument()

0

是的,绝对。事实上,我已经构建了一个端到端的解决方案,只需单击一个按钮,它将用版本时间戳更新类文件,如果尚未打开,请打开Flash,打开单个文件以供发布,自动化程序通过进程间通信在每个文件完成发布时进行,因此您不会遇到任何计时问题,并且在完成后(在自动备份和打印文件名的时间戳后)将特定文件部署到网络,以及整个过程在10秒内完成。

见我的Q &一个位置:Automating publishing of FLA files; calling Process.Start multiple times

0

就像是已经说过,它是可能的JSFL脚本来完成,但你仍然需要有命令行工具,与Adobe Flash Professional中进行通信,以记录过程转换为stdout并根据编译结果提供退出代码。

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

相关问题