技术分享 如何在Flex中使用嵌入字体

开发 后端
本文向大家介绍一下如何在Flex中使用嵌入字体,在处理文本时,为了美观有时会给文本选择一些特殊的字体,使得文本不那么单调。

在学习Flex的过程中,你可能会遇到在Flex中使用嵌入字体的问题,这里和大家分享一下,相信本文介绍一定会让你有所收获。

在Flex中使用嵌入字体

在处理文本时,为了美观,有时会给文本选择一些特殊的字体,使得文本不那么单调,这就会引发一个问题:由于每个用户的系统有差异,当对方机器上没有安装你指定的字体时,FlashPlayer会自动选择一个合适的字体,无法保证文字的外观在控制之中,很可能会走样。

如何避免出现这样的情况?

解决方法有两种:

使用设备字体和使用嵌入字体。设备字体的特性是用户机器上的所有字体都***可能地模拟其外观,保持文本的样式不会出现较大变化;嵌入字体是指将字体文件编译进SWF文件中或者运行时加载到SWF文件中,供SWF文件使用。这样不管用户是否安装了该字体,都可以正常显示。使用嵌入字体的好处还有:文本具有抗锯齿,边缘更平滑,文本可以设置透明度,文本还可以旋转。当然也有缺点,首先便是增加了程序的文件大小,而且嵌入字体只支持TrueType(微软和Apple公司共同研制的字型标准)类型,当字体大小小于10时,文本会很难辨认。

◆一般情况下,使用设备字体就足够了,FlashPlayer支持三种设备字体:_sans,_serif,_typewriter。所以在定义样式时,为保证效果,可以这样:

  1. Application{  
  2. fontSize:12;  
  3. fontFamily:Arial,"_sans";  

当用户的机器上没有Arial字体,FlashPlayer自动使用“_sans”设备字体。和系统字体的使用不同,设备字体必须用引号。
有些情况要求必须使用嵌入字体,例如使用了动画效果中的部分效果如Fade(淡入淡出效果)、Rotate(旋转效果),Dissolve(溶解效果)。可以在样式在定义嵌入字体:
 

  1. <mx:Style> 
  2. @font-face{  
  3. src:local("Arial");//嵌入本机字体  
  4. fontFamily:myFont;//字体的别名  
  5. fontStyle:normal;//默认normal,正常,可选值:italic|oblique|normal  
  6. fontWeight:normal;//默认normal,正常,可选值:bold|heavy|normal  
  7. flashType:true;//默认true,添加文本的额外信息,使得文本抗锯齿  
  8. ,平滑显示  
  9. }  
  10. Application{  
  11. fontSize:12;  
  12. fontFamily:myFont;//指定字体,使用嵌入字体的别名  
  13. }  
  14. </mx:Style> 

◆在嵌入一些双字节型的字体,比如中文字体,日文字体时,字体信息复杂,字体文件大,为了减小程序的文件大小,可以对嵌入字体的字符范围进行限制,这样,没有使用的字符信息不会被包含在文件中。例如上面使用了英文字体,只能使用英文范围内的字符,如果使用了中文,将无法显示。

在font-face中使用unicodeRange来指定字符范围,例如:
 

  1. @font-face{  
  2. src:local("Arial");  
  3. fontFamily:myFont;  
  4. flashType:true;  
  5. unicodeRange:  
  6. U+0041-U+00***,/*大写字母[A..Z]*/  
  7. U+0061-U+007A,/*小写字母a-z*/  
  8. U+0030-U+0039,/*数字[0..9]*/  
  9. U+002E-U+002E;/*点[.]*/  
  10. }  

【编辑推荐】

  1. 使用FlexSDK4时三大注意事项
  2. FlexBuilder4十大新特性闪亮登场
  3. 两大方式实现Flex设置浏览器标题
  4. 揭开Flex正则表达式的神秘面纱
  5. 技术分享 在Flex中嵌入Flex字体的步骤

 

责任编辑:佚名 来源: csdn.net
相关推荐

2010-08-05 13:07:11

FlexJson

2010-08-09 15:41:13

Flex字体

2010-08-13 10:01:46

Flex样式定义

2010-08-09 15:30:00

Flex字体

2010-08-10 15:55:20

FlexHTML页面

2010-07-28 12:41:18

Flex组件

2021-03-09 07:27:40

Kafka开源分布式

2022-06-23 08:00:53

PythonDateTime模块

2011-08-10 09:31:41

Hibernateunion

2022-05-17 08:25:10

TypeScript接口前端

2024-01-18 08:37:33

socketasyncio线程

2021-06-09 09:36:18

DjangoElasticSearLinux

2015-08-27 09:46:09

swiftAFNetworkin

2019-09-16 19:00:48

Linux变量

2020-04-09 10:18:51

Bash循环Linux

2020-11-30 11:55:07

Docker命令Linux

2014-07-02 09:47:06

SwiftCocoaPods

2010-08-11 14:47:54

Flex样式

2010-08-02 16:33:11

Flex Spring

2010-08-09 15:52:28

点赞
收藏

51CTO技术栈公众号