原文地址:
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;??
[Embed(source="c:/windows/fonts/FREESCPT.TTF",fontName="Freestyle",unicodeRange="U+0020-U+002F,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);??
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",embedAsCFF="false",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动态加载,试过上面三种办法,都没能解决。先记录下来,以后看有没找到解决方法。
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!