2012-02-01 50 views
1

我正在研究一個非常大的Flash遊戲項目,而且我們遇到了一個非常煩人的問題。Actionscript/CS5字體嵌入問題

每隔三(或更多)編譯,顯然是隨機的,CS5並沒有將整個字符集嵌入到我們的應用程序中。當遊戲中的某些角色缺失時,我們會注意到這一點。我可以通過重新編譯多次來重現此問題;有時會嵌入字體,有時不會。

有沒有人遇到類似的問題,如果是的話,你是如何解決它?任何想法如何找出這個問題的原因?

回答

2

Flash始終存在字體處理問題。如果字體導出的行爲不穩定,您可能也不會發現問題 - 它需要以某種方式重現以識別模式...

但是,您可以改進構建過程並將這些不規則性減少到至少:您應該始終將所有字體保留在一個或多個單獨的FLA中。將這些文件導出到.SWC組件中,並將這些文件包含在應用程序FLA的類路徑中。

這樣可以確保庫中的其他元素都不影響導出行爲,並且一旦正確編譯字體,問題就再也不會讓你放慢速度。此外,它將大大縮短編譯時間 - 從庫中導出字體對編譯器來說是一個真正的拖延,並且您不希望每次更改代碼中的內容時都等待它。

+0

看來,如果你有多個嵌入相同字體集的swc,並且它們具有不同的字符集,則會覆蓋另一個。 swcs導入的順序可能是隨機的,所以我想我已經弄明白了。 – Fragsworth 2012-02-01 23:16:26

0

也許不相關,但無論如何我會把它放在那裏,以防萬一它有幫助。

對於大項目,我必須將JVM虛擬內存大小改爲高於默認值。您可以編輯通常這裏找到的配置文件:

C:\Program Files (x86)\Adobe\Adobe Flash CS5\Common\First Run\ActionScript 3.0\jvm.ini 

(或只是搜索jvm.ini)

對我來說,我設置中設置的大小從128到:

-Xmx256m 

主要解決這個問題的時候,在發佈的時候會拋出一個「沒有動作腳本」的錯誤,整個構建都會失敗。這是因爲我的項目太大了。

它可能與您的問題相關或不相關,但值得嘗試查看是否有幫助。