Flex4中textField使用嵌入字体

本文介绍如何在Flex4.0中嵌入并使用自定义字体,包括ActionScript代码示例及解决字体显示问题的方法。

原文地址:

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动态加载,试过上面三种办法,都没能解决。先记录下来,以后看有没找到解决方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值