[AS3] Embedding font's glyphs from SWF files
進入到 AS3 世界後,越來越多畫面是由 Script、Components、XML Model 與 CSS stylesheet 組成,embeded fonts 變成動態文字應用很重要的一環。
要在Flash or Flex 中 Embed fonts 有相當多的作法,光官方的 Help 就有幾種寫法:
Flex 3 live doc:
Embedding fonts from SWF files
Using embedded fonts
Flash :
Embedding fonts
google 上還有一堆...
embed 英文字型檔是很簡單的,但是遇到中文字就會是一場惡夢...要使畫面好看,撇除 embed 整包中文字型,轉而打包特定使用到的中文字來供全部畫面使用,作法是由 Embedding fonts from SWF files 參考而來。
以下方法不管 Flex or Flash CS3都適用,至少可以省下相當的檔案大小...
- 打開 Flash CS3,開新 AS3 檔案, 使用工具箱建立一個動態文字框到畫面上。選擇需要 embed 的中文字型,點選 文字物件的屬性面板上的 『embed』:

- 跟 Flash 8 作法一樣將要 embed 的中文字打在『Include these characters』的輸入框內:

- 到這邊跟官方的作法都一樣,唯一輸出的差別是如果要供ActionScript project 使用的話需要將做好的動態文字框按滑鼠右鍵『covert to Symbol』:
如果是用 Flash CS3 製作專案,留在 Library 就可以了。而 Flex的ActionScript Project 需要發佈 SWF 到你所在的路徑然後:
[Embed(source='customedFonts.swf', symbol='customedFonts')]
public static const myFonts:Class; //其實修飾子看個人使用Flex MXML project: (如同官方說明)
<mx:Style>
@font-face {
/*將文字崁入*/
src:url("customedFonts.swf");
fontFamily: "華康儷細黑";
}
.testStyle{
color: #FFFFFF;
font-size: 22px;
font-family:華康儷細黑;
}
</mx:Style>
上面字型檔只 embed "今天氣很好"
測試:Flash CS3 customedFonts 留在 Library
var format:TextFormat= new TextFormat();
format.font= "華康儷細黑";
format.size=30;
format.letterSpacing=3;
var myTextField:TextField= new TextField();
myTextField.embedFonts= true;
myTextField.autoSize="left";
myTextField.defaultTextFormat = format;
myTextField.text="*這些都不會出現*今天天氣很好";
addChild(myTextField);
output 畫面:



0 意見:
Post a Comment