文章目錄
- 原文地址:
- 1. 嵌入字型
- 2. 使用字型
- 3. 解決Flex4.0 SDK的問題
原文地址:
http://11lingxian.javaeye.com/blog/653837
1. 嵌入字型Actionscript代碼
- [Embed(source="c:/windows/fonts/FREESCPT.TTF", fontName="Freestyle", unicodeRange="U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E")]
- public static var freestyle:Class;
[Embed(source="c:/windows/fonts/FREESCPT.TTF", fontName="Freestyle", unicodeRange="U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E")]public static var freestyle:Class;
2. 使用字型Actionscript代碼
- var tf:TextField = new TextField();
- tf.defaultTextFormat = new TextFormat("Freestyle", 30, 0);
- tf.embedFonts = true;
- tf.autoSize = "left";
- tf.text = "Hello World!";
- addChild(tf);
var tf:TextField = new TextField();tf.defaultTextFormat = new TextFormat("Freestyle", 30, 0);tf.embedFonts = true;tf.autoSize = "left";tf.text = "Hello World!";addChild(tf);
如果要在Flex3.X中嵌入字型,到此就可以結束了。但是在Flex4.0 SDK中字型很有可能無法顯示。這就需要下面的步驟了。
3. 解決Flex4.0 SDK的問題
- 方法1,在embed標籤中加入embedAsCFF=”false”。
Actionscript代碼
- [Embed(source="c:/windows/fonts/FREESCPT.TTF", embedAsCFF="false", fontName="Freestyle", unicodeRange="U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E")]
- public static var freestyle:Class;
[Embed(source="c:/windows/fonts/FREESCPT.TTF", embedAsCFF="false", fontName="Freestyle", unicodeRange="U+0020-U+002F,U+0030-U+0039,U+003A-U+0040,U+0041-U+005A,U+005B-U+0060,U+0061-U+007A,U+007B-U+007E")]public static var freestyle:Class;
- 方法2,修改SDK目錄下flex-config.xml檔案。
flash.fonts.AFEFontManager
將AFEFontManager挪到的最後一行。
=============
另外還有一種方法文章中沒提到,但在其他文章看到了。
3、向編譯器參數列表裡添加“-managers=flash.fonts.AFEFontManager”編譯器參數
經過測試,三種方法都可以實現使用嵌入字型。
但目前出現的一個未解決問題是。字型不是通過embed來嵌入的。而是通過loader動態載入,試過上面三種辦法,都沒能解決。先記錄下來,以後看有沒找到解決方案。