Flex4中textField使用嵌入字体

原文地址:

http://11lingxian.javaeye.com/blog/653837

1. 嵌入字体

Actionscript代码
  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")]   
  2. public static var freestyle:Class;  

2. 使用字体

Actionscript代码
  1. var tf:TextField = new TextField();   
  2. tf.defaultTextFormat = new TextFormat("Freestyle"300);   
  3. tf.embedFonts = true;   
  4. tf.autoSize = "left";   
  5. tf.text = "Hello World!";   
  6. addChild(tf);  

如果要在Flex3.X中嵌入字体,到此就可以结束了。但是在Flex4.0 SDK中字体很有可能无法显示。这就需要下面的步骤了。

 

3. 解决Flex4.0 SDK的问题

  • 方法1,在embed标签中加入embedAsCFF=”false”。
Actionscript代码
  1. [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")]   
  2. public static var freestyle:Class;  
  • 方法2,修改SDK目录下flex-config.xml文件。

flash.fonts.AFEFontManager

将AFEFontManager挪到的最后一行。

 

=============

另外还有一种方法文章中没提到,但在其他文章看到了。

3、向编译器参数列表里添加“-managers=flash.fonts.AFEFontManager”编译器参数

 

经过测试,三种方法都可以实现使用嵌入字体。

但目前出现的一个未解决问题是。字体不是通过embed来嵌入的。而是通过loader动态加载,试过上面三种办法,都没能解决。先记录下来,以后看有没找到解决方法。

你可能感兴趣的:(c,Flex,测试,Class,actionscript,编译器)