原文地址:
http://11lingxian.javaeye.com/blog/653837
1. 嵌入字体
- [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. 使用字体
- 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”。
- [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动态加载,试过上面三种办法,都没能解决。先记录下来,以后看有没找到解决方法。