2007-05-15 07:50 Flash 技巧 - 預先編譯嵌入字體
Flash 技巧 - 預先編譯嵌入字體
Flash 不知道第幾版開始加入的嵌入字體的功能
可以讓 SWF 呈現出用戶端電腦上沒有安裝的字體
不過編譯含有嵌入字體 SWF 是非常耗時的一件事情
重複編譯 fla 時,Flash 本身似乎會做某種程度的快取
一旦 Flash 關閉,快取就會消失~
下次重開文件,仍需要大量的編譯時間
那如何可以節省編譯時間呢?
或許你會聯想到 Flash 8 新加入的功能 - 預先編譯 MovieClip
只答對了一半,Font 元件是沒有辦法直接預先編譯的
以下就使用 Flash CS3、ActionScript 2.0 示範
(Flash 8 也是可以這樣用的)
預先將編譯字體編譯
省去重複編譯字體的時間
缺點是字體容量會直接反應在 *.fla 原始檔案的大小
首先,在 Flash 元件庫內新增想要嵌入的 Font 元件
名稱隨意~

設定 Font 元件 Linkage 屬性,勾選『Export for ActionScript』

建立一個 MovieClip,並於該元件內加入 Dynamic TextField,設定字體為之前建立的 Font 元件

將含有文字欄位的 MovieClip 轉為編譯過的 Clip
你會發現這個動作比較耗時,因為它會連字體一併進行編譯

最後將 Font Linkage 屬性,取消勾選『Export for ActionScript』
而將編譯過的 MovieClip 勾選『Export for ActionScript』
以下用 ActionScript 2.0 方式示範如何使用剛才預先編譯的嵌入字體
影格 1:
var txt:TextField = createTextField("txt", 100, 100, 50, 100, 22);
txt.embedFonts = true;
var tf:TextFormat = txt.getTextFormat();
tf.font = "Arial";
txt._rotation = 10;
txt.text = "123456";
txt.setTextFormat(tf);
要注意的是字體名稱是 "Arial" 不是自行定義的 "Arial_Regular"


