2012-02-23 82 views
2

我們需要生成大約8000個幾乎完全相同的SWF文件,但文本略有不同。我知道flashvars,但不幸的是,我們無法控制這些文件的發佈,也無法傳入flashvars。理想情況下,我正在尋找的是我們有一個flash設計師提供了一個漂亮的模板對於我們在文件中佔位符文本或元素。然後,我們可以多次調用一個命令行實用程序,以稍微修改後的文本生成8,000個副本。批量生成SWF文件

我已經搜索了整整一天,並沒有找到任何東西來幫助我們。當然,我不是Flash開發人員,但看起來這很簡單。

回答

1

爲什麼MXMLC不能工作?

什麼是目標SWF格式?如果它是8或更低,你可以結合SWFMill嘗試MTASC(代碼和圖形需要文本源文件)。

SWF規範是開放的,有幾個解析器可以對SWF文件進行不同程度的分析。如果只是替換文本字段的內容,那麼可能只需要重寫一個包含文本字段的標籤並更新文件頭中的總文件大小。

如果您需要實時做到這一點,這將取決於您的SWF包含的代碼數量以及需要重新編譯的代碼量,但通常HaXe編譯器比MXMLC快得多,對於小文件可以根據請求進行編譯,而不是預編譯所有這些文件並按需提供(取決於更昂貴的代碼,編譯所需的時間或服務器上的空間)。

編輯:說,你想用MXMLC,你可以有這樣的事情:

#!/usr/bin/env bash 

for i in {0..8000} 
do 
    cp ./ClassWithText.template ./ClassWithText.as 
    sed -i s/%pattern%/counter${i}/g ./ClassWithText.as 
    mxmlc ./ClassWithText.as -o ./result-${i}.swf 
done 

注意:你不會或許能夠得到mxmlc的全局訪問,因爲它有一些硬編碼的路徑,所以,你會使用編譯器的絕對路徑,但這個想法應該是一樣的。

然後說,你有這樣的文字在ClassWithText.template文件:

var myText:String = "%pattern%"; 

將它轉化爲:

var myText:String = "counter0"; 

,然後進行編譯, 「C1的」,然後編譯等等。

+0

MXMLC是大多數Flash開發人員都熟悉的東西嗎?正如我所說,我完全不知道閃光燈,但知道我們需要8000個具有略微不同文字的物理SWF文件。我正在閱讀關於MXMLC的文檔,但不知道有關Flash開發的任何內容,這是非常陌生的。我們明天將在我們的地區與Flash開發者聯繫,但是在我這樣做之前,要確保我知道我在找什麼。 – Kevin 2012-02-24 02:50:08

+0

感謝您的答案和示例。我會盡力找到能夠幫助我們的人。 – Kevin 2012-02-24 15:57:03

0

正如wvxvw所說,您可以使用mxmlc compiler,另一種可能性是使用JSFL對Flash IDE進行腳本編寫。