2011-04-25 42 views
3

我有一個基於actionscript 3的網站,它使用通用技術從外部字體swfs中異步加載字體大綱。swc中的字體和外部swf之間的衝突

... 
var FontLibrary:Class = e.target.applicationDomain.getDefinition("font") as Class; 
Font.registerFont(FontLibrary.fontClass); 

一切工作正常,直到我從包含相同字體的文本的SWC附加資產。此時只使用swc的輪廓。因此,對於檢查,如果swc有一個 dyncamic TextField,其中包含字母「abc」,那麼只有這些字母纔會顯示在網站中,而不是以前從字體swf中以同義方式加載的整個字母。

有沒有人遇到過這種情況,並找到了解決辦法?

回答

1

我遇到了在Flex中嵌入字體的問題,然後在項目中添加了一個帶有相同字體的swf。

只要確保SWC字體包含所有字符。也許是這樣的:http://www.adobe.com/devnet/flash/quickstart/embedding_fonts.html

或者你可以嘗試以編程方式設置swc中的文本字段的字體,而不是通過IDE選項。這樣字體就不會嵌入到swc的第一個位置。

+0

感謝您的確認。爲了保持動態,我不在swc中嵌入任何字體輪廓,確保swc中的每個TextField都有「_san」而沒有嵌入,然後通過動作腳本,一旦資產添加到顯示列表中,我將嵌入並設置每個文本字段的格式。 – Sunny 2011-04-28 13:46:27

+0

只要兩個字體家族不衝突,一切似乎都可以。例如,如果Century Gothic在assets.swc中,而Arial在font.swf中,則一切都應該很好。但是如果Century Gothic Italic在assets.swc中,而Century Gothic Bold在font.swf中,那麼assets.swc字體將覆蓋所有Century Gothic大綱,而不管其風格如何。 – Sunny 2011-04-28 14:30:04