在学习Flex的过程中,你可能会遇到如何在Flex中嵌入Flex字体这样的问题,这里和大家分享一下,相信本文介绍一定会让你有所收获。
如何在Flex中嵌入Flex字体
本文将告诉您如何在Flex中使用ActionScript来嵌入Flex字体。
1.要注意约束性的使用嵌入Flex字体技术,只是嵌入需要的字符,以此来减小文件体积。
2.设备字体(DeviceFonts)运用在一些特殊设备,诸如电脑和移动掌上电脑上。当你在Flex程序中使用设备字体时,字体在编译时是通过名字提及(namereference)在用户的设备上保存该字体(storethefont),而在应用程序运行时,应用程序则尝试在用户设备中定位该字体。(locatethefont)
3.如果没有发现字体,它将会寻找一个最接近该字体的设备字体(itwillmakeabestguessandselectafontthatitdeemstobetheclosestmatchontheuser'sdevice.)
4.开发者会选择常用的字体来创建应用程序,他们知道那些字体对目标设备来说那是很常用的字体。(Developersusuallycreatetheirapplicationstotargetalimitednumberoffontsthattheyknowarecommonlyavailableonthetargetdevice.)
5.举个例子,TimesNewRoman,Arial,HelveticaandVerdana常被用与网站字体,因为它们在Windows和Mac系统中都很常用。当设备字体还未被嵌入在Flex应用程序中,它们是不会增加文件的尺寸的(SincedevicefontsarenotcompiledintotheFlexapplication,theydonotincreasethefilesizeofthedeployedSWF.)
6.你不能确定你的应用程序会在用户电脑上***的显示,因为某些字体无法被确认是否安装在用户的设备上,设备字体是无法运行在Flex的animations效果和effects效果和旋转效果下显示的。
- <mx:Script>
- //字体将不会显示
- <mx:Labeltextmx:Labeltext="testRotate"rotation="45"/>
- </mx:Script>
如果您是通过字体文件名或者系统字体名来嵌入Flex字体的话,那么您只能嵌入TrueType类型字体。(Ifyouembedafontbyfilenameorsystemfontname,youcanonlyembedTrueTypefonts.)
7.如果你在flex应用程序中使用FlashCS3导出的SWF文件来嵌入Flex字体,你可以嵌入任何可以在Flash中使用的字体.(usingadobeflashcs3-anyfontavailableinFlash)如果在应用程序中嵌入Flex字体,要注意它们会增加你的最终生成的SWF文件的大小。嵌入Flex字体可以确保你的应用程序可以完全显示在客户的电脑上(displaysproperly)。嵌入Flex字体同样可以显示于Flexanimations效果中,它可以自动抗锯齿(anti-aliased)。抗锯齿技术可以平滑特定的尺寸(certainsizes)(这样效果更好)的字体,提高可读性。
(Anti-aliasingisasmoothingofthefontcharacterstoimprovetextreadabilityatcertainsizes.)
8.创建抗锯齿文本有多种算法,但最终的办法是使用字体颜色阴影(useshadesofthefontcolor)平滑曲线(smoothcurves)和弯曲角度(corners)(butultimatelytheideaistouseshadesofthefontcolortosmoothcurvesandcornersofthetext)。对于字体的抗锯齿方法,要记住,所有的字体都使用是不必要的。抗锯齿技术不能运用于设备字体中(Anti-aliasingcannotbecontrolledindevicefonts)。
9.像其它的网络资源一样(Likeallassets),一些字体的使用需要受到许可限制.不错的字体网站
◆创建嵌入Flex字体步骤:
和嵌入图片用到的Embed元数据指令一样,嵌入Flex字体也是同的指令。1.首先,可以在主程序文件的前端创建MXMLScript块,如下:
- <mx:Script>
- <![CDATA]
- [Embed(source="需要嵌入的字体路径",
- fontName="起一个任意的名称",fontWeight="bold",
- mimeType="application/x-font")]
- ]]>
- mx:Script>
- //注意事项:
- /*在此键入[Embed()]元数据指令和它的source属性,可以使用相对或者绝对路径。
- (针对本地计算机的TrueType字体文件),同时加上mimeType属性(声明嵌入的资源是一种字体)
- (embeddedassetisafont)。
- */
- /*
- 创建私有变量privatevarLogoFont:Class,(和嵌入图片资源一样)。您必须声明该变量。
- 其次,要为该字体起一个名字(注意唯一性),设置fontName属性,使用它可以在应用程序的样式中引用到它。
- */
- //应用时使用fontFamily样式(注意这不是属性),
- <mx:Labeltextmx:Labeltext="embedFontTest"fontFamily="和fontName的名字一样"fontWeight:"bold"/>
- 同样可以在MXML中的Style块中引用到该嵌入Flex字体
- <mx:Style>
- //添加一个自定义的(acustomclassSelector),名字任意。
- .embedFont{
- fontFamily:和嵌入Flex字体的名字一样
- font-size:22pt;//设置字体大小
- color:#FFFFFF;//设置字体颜色
- }
- </mx:Style>
- //使用时指定styleName属性
- <mx:Labeltextmx:Labeltext="testA"styleName="embedFont"/>
- /*
- 如果加入了字体变粗样式(fontWeight),会发现没有显示(因为粗字体对于justus字体来说没有嵌入)
- 您需要在Embed指令中键入fontWeight后。如果是通过CSS来应用的话,需要在其中申明该样式。
- */
【编辑推荐】
- 学习总结 在Flex中如何嵌入Flex字体
- FlexBuilder4十大新特性闪亮登场
- 解析AS3中Flex正则表达式的使用
- 学习笔记 Flex中设置Flex滚动条的样式
- FlexBuilder开发方法及特点解析