2008-11-04 68 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進行測試。

相關問題