高级文本呈现Flash Player 9 和更高版本,Adobe AIR 1.0 和更高版本 ActionScript 3.0 在 flash.text 包中提供多个类来控制所显示文本的属性,包括嵌入字体、消除锯齿设置、alpha 通道控制及其他特定设置。“ActionScript 3.0 参考”提供了对这些类和属性(其中包括 CSMSettings、Font 和 TextRenderer 类)的详细描述。 使用嵌入字体当您在应用程序中为 TextField 指定特定字体时,Flash Player 或 AIR 会查找同名的设备字体(位于用户计算机上的一种字体)。如果在系统上没有找到该字体,或者如果用户的字体版本与具有该名称的字体略有差异,则文本显示外观会与预想的情况差别很大。 若要确保用户看到完全正确的字体,您可以将该字体嵌入到应用程序 SWF 文件中。嵌入字体有很多好处:
使用嵌入字体的最大限制是嵌入字体会增加文件大小或应用程序的下载大小。 将字体文件嵌入到应用程序 SWF 文件中的具体方法因开发环境而异。 嵌入字体后,可以确保 TextField 使用正确的嵌入字体:
在 Flash 中嵌入字体Flash Professional 允许您嵌入系统中已安装的几乎所有字体,包括 TrueType 字体和 Type 1 Postscript 字体。 可以利用多种方法将字体嵌入应用程序,其中包括:
有关如何在应用程序中嵌入字体的详细信息,请参阅《使用 Flash》中的“动态或输入文本字段的嵌入字体”。 在 Flex 中嵌入字体可以利用多种方法将字体嵌入 Flex 应用程序,其中包括:
在 Flex 应用程序中只能直接嵌入 TrueType 字体。Type 1 Postscript 等其他格式的字体可以先嵌入到使用 Flash Professional 的 SWF 文件,然后便可在 Flex 应用程序中使用此 SWF 文件。有关在 Flex 中使用 SWF 文件中的嵌入字体的详细信息,请参阅《使用 Flex 4》中的“嵌入 SWF 文件中的字体”。 控制清晰度、粗细和消除锯齿默认情况下,在文本调整大小、更改颜色或在不同背景上显示时,Flash Player 或 AIR 可以确定文本显示控件的设置(如清晰度、粗细和消除锯齿)。在某些情况下,如文本很小、很大或显示在各种特别的背景上时,您可能需要保持对这些设置的控制。可以使用 flash.text.TextRenderer 类及其相关类(如 CSMSettings 类)来覆盖 Flash Player 或 AIR 的设置。使用这些类可以精确控制嵌入文本的呈示品质。有关嵌入字体的详细信息,请参阅使用嵌入字体。 注: 为了设置清晰度、粗细或 gridFitType 属性,或者使用 TextRenderer.setAdvancedAntiAliasingTable() 方法,flash.text.TextField.antiAliasType 属性的值必须是 AntiAliasType.ADVANCED。
以下示例使用名为 myFont 的嵌入字体对显示的文本应用自定义连续笔触调制 (CSM) 属性和格式设置。用户单击显示的文本时,Flash Player 或 Adobe AIR 会应用自定义设置: var format:TextFormat = new TextFormat(); format.color = 0x336699; format.size = 48; format.font = "myFont"; var myText:TextField = new TextField(); myText.embedFonts = true; myText.autoSize = TextFieldAutoSize.LEFT; myText.antiAliasType = AntiAliasType.ADVANCED; myText.defaultTextFormat = format; myText.selectable = false; myText.mouseEnabled = true; myText.text = "Hello World"; addChild(myText); myText.addEventListener(MouseEvent.CLICK, clickHandler); function clickHandler(event:Event):void { var myAntiAliasSettings = new CSMSettings(48, 0.8, -0.8); var myAliasTable:Array = new Array(myAntiAliasSettings); TextRenderer.setAdvancedAntiAliasingTable("myFont", FontStyle.ITALIC, TextColorType.DARK_COLOR, myAliasTable); } |
|