包 | flash.text.engine |
类 | public final class FontDescription |
继承 | FontDescription Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
FontDescription 对象应用于 ElementFormat,后者又应用于 TextBlock 中的 ContentElement。将 FontDescription 应用于 ElementFormat 后,其 locked
属性将设置为 true
。无法更改已锁定 FontDescription 对象的属性。相反,可以使用 clone()
方法创建此对象的没有锁定的副本,可以对此副本进行修改并将其分配给 ElementFormat。
注意: FTE(Flash 文本引擎)不支持 Type 1 字体或 Type 3、ATC、sfnt 换行 CID 或 Naked CID 等位图字体。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
cffHinting : String
用于此文本的 CFF 提示的类型。 | FontDescription | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
fontLookup : String
指定应该如何查找字体。 | FontDescription | ||
fontName : String
要使用的字体的名称或用逗号分隔的字体名称列表。 | FontDescription | ||
fontPosture : String
指定字体形态。 | FontDescription | ||
fontWeight : String
指定字体粗细。 | FontDescription | ||
locked : Boolean
表示 FontDescription 是否已经锁定。 | FontDescription | ||
renderingMode : String
用于此文本的呈现模式。 | FontDescription |
方法 | 由以下参数定义 | ||
---|---|---|---|
FontDescription(fontName:String = "_serif", fontWeight:String = "normal", fontPosture:String = "normal", fontLookup:String = "device", renderingMode:String = "cff", cffHinting:String = "horizontalStem")
创建一个 FontDescription 对象。 | FontDescription | ||
构造 FontDescription 的没有锁定的克隆副本。 | FontDescription | ||
表示对象是否已经定义了指定的属性。 | Object | ||
[静态]
如果可用的设备字体可与指定的 fontName、fontWeight 和 fontPosture 配合使用,则返回 true。 | FontDescription | ||
[静态]
如果使用指定的 fontName、fontWeight 和 fontPosture(其中的 Font.fontType 为 flash.text.FontType.EMBEDDED_CFF)的嵌入字体可用,则将返回 true。 | FontDescription | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object |
cffHinting | 属性 |
cffHinting:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
用于此文本的 CFF 提示的类型。对此属性使用 CFFHinting
常量。仅在文本的 RenderingMode
属性设置为 RenderingMode.CFF
时才应用此属性。
使用的 CFF(压缩字体格式)提示的类型决定 Flash 运行时强制粗水平线是否适合子像素网格。
仅适用于嵌入字体。
默认值为 CFFHinting.HORIZONTAL_STEM
。
对于 CFFHinting
属性,您可以使用 CFFHinting 类中的下列常量:
字符串值 | 说明 |
---|---|
CFFHinting.NONE | 不指定任何 CFF 提示。对子像素网格不强制在字型中使用水平线。此设置适合动画或大号字。 |
CFFHinting.HORIZONTAL_STEM | 指定 CFF 提示。粗水平线适合屏幕上的子像素网格。要使用此设置,RenderingMode 属性必须设置为 RenderingMode.CFF 。 |
实现
public function get cffHinting():String
public function set cffHinting(value:String):void
引发
ArgumentError — 如果设置的任何值不是 CFFHinting 的成员。
| |
IllegalOperationError — 如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
相关 API 元素
fontLookup | 属性 |
fontLookup:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定应该如何查找字体。
默认值为 FontLookup.DEVICE
。
要设置此属性的值,请使用下列字符串值:
字符串值 | 说明 |
---|---|
FontLookup.DEVICE | 运行时在本地系统上查找具有指定 name 的、用于呈现文本的设备字体。 |
FontLookup.EMBEDDED_CFF | 运行时查找具有指定 name 的、用于呈现文本的嵌入 CFF 字体。仅考虑类型为 flash.text.Font.fontType.EMBEDDED_CFF 的字体。如果指定的 CFF 字体未嵌入应用程序中,则运行时将尝试在各个字形中使用回退设备字体。此方法没有首先选择设备字体的效率高。 |
实现
public function get fontLookup():String
public function set fontLookup(value:String):void
引发
IllegalOperationError — 如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
相关 API 元素
fontName | 属性 |
fontName:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
要使用的字体的名称或用逗号分隔的字体名称列表。运行时使用列表中的第一个可用字体呈现元素。例如“Arial, Helvetica, _sans”使播放器搜索 Arial,如果找不到 Arial,则搜索 Helvetica,如果这两种字体都找不到,则最后搜索 _sans。
Flash 运行时支持三种通用设备字体名称:sans(对于 sans serif 字体)、_serif(对于 serif 字体)和 _typewriter(对于 mono-space 字体)。这些字体将映射到特定的设备字体,具体取决于平台。
默认值为 "_serif"
。
Flash 运行时为所选字体中没有的字形提供字体回退。无论是正在使用的已嵌入字体还是设备,如果字体中没有字形,则运行时将很有可能尝试使用其他设备呈现以包含此字形。
实现
public function get fontName():String
public function set fontName(value:String):void
引发
IllegalOperationError — 如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
相关 API 元素
fontPosture | 属性 |
fontPosture:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定字体形态。
默认值为 FontPosture.NORMAL
。
要设置此属性的值,请使用 FontPosture 类中的下列常量:
值 | 说明 |
---|---|
FontPosture.NORMAL | 标准字体形态。 |
FontPosture.ITALIC | 斜体字体形态。 |
实现
public function get fontPosture():String
public function set fontPosture(value:String):void
引发
ArgumentError — 如果设置的任何值不是 FontPosture 的成员。
| |
IllegalOperationError — 如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
相关 API 元素
fontWeight | 属性 |
fontWeight:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定字体粗细。
默认值为 FontWeight.NORMAL
。
要设置此属性的值,请使用 FontWeight 类中的下列常量:
字符串值 | 说明 |
---|---|
FontWeight.NORMAL | 标准字体的粗细。 |
FontWeight.BOLD | 粗体字体的粗细。 |
实现
public function get fontWeight():String
public function set fontWeight(value:String):void
引发
ArgumentError — 如果设置的任何值不是 FontWeight 的成员。
| |
IllegalOperationError — 如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
相关 API 元素
locked | 属性 |
locked:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5., Flash Lite 4 |
表示 FontDescription 是否已经锁定。如果为 true
,将无法修改 FontDescription。调用 FontDescription.clone()
以获取 FontDescription 对象的没有锁定的副本。
实现
public function get locked():Boolean
public function set locked(value:Boolean):void
引发
IllegalOperationError — 如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
renderingMode | 属性 |
renderingMode:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
用于此文本的呈现模式。对此属性使用 RenderingMode
常量。
仅适用于嵌入字体。
默认值为 RenderingMode.CFF
。
要设置此属性的值,请使用 RenderingMode 类中的下列常量:
字符串值 | 说明 |
---|---|
RenderingMode.NORMAL | 应用与 Flash Player 7 和早期版本使用的呈现类型匹配的常规文本呈现。 |
RenderingMode.CFF | 应用 CFF(压缩字体格式)呈现功能,这增加了文本的可读性。(此功能在 Flash Player 10 中可用。)利用 CFF 呈现,可通过小尺寸获得高品质的字体呈现。 |
实现
public function get renderingMode():String
public function set renderingMode(value:String):void
引发
ArgumentError — 如果设置的任何值不是 RenderingMode 的成员。
| |
IllegalOperationError — 如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
相关 API 元素
FontDescription | () | 构造函数 |
public function FontDescription(fontName:String = "_serif", fontWeight:String = "normal", fontPosture:String = "normal", fontLookup:String = "device", renderingMode:String = "cff", cffHinting:String = "horizontalStem")
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
创建一个 FontDescription 对象。
参数fontName:String (default = "_serif ") — 要使用的字体的名称或用逗号分隔的字体名称列表。
| |
fontWeight:String (default = "normal ") — 指定字体粗细。
| |
fontPosture:String (default = "normal ") — 指定字体形态。
| |
fontLookup:String (default = "device ") — 指定如何查找字体。
| |
renderingMode:String (default = "cff ") — 用于此文本的呈现模式。对此属性使用 RenderingMode 常量。
| |
cffHinting:String (default = "horizontalStem ") — 用于此文本的 CFF(压缩字体格式)提示的类型。对此属性使用 CFFHinting 常量。
|
引发
ArgumentError — 指定的 fontWeight 不是 FontWeight 的成员。
| |
ArgumentError — 指定的 fontPosture 不是 FontPosture 的成员。
| |
ArgumentError — 指定的 fontLookup 不是 FontLookup 的成员。
| |
ArgumentError — 指定的 renderingMode 不是 RenderingMode 的成员。
| |
ArgumentError — 指定的 cffHinting 不是 CFFHinting 的成员。
|
clone | () | 方法 |
public function clone():FontDescription
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
构造 FontDescription 的没有锁定的克隆副本。
返回FontDescription — FontDescription 对象的没有锁定的副本。
|
示例 ( 如何使用本示例 )
此示例将创建一个 FontDescription
对象、将设备字体分配给该对象、设置各种字体属性并将新对象(因此锁定它)分配给 ElementFormat
对象。使用 ElementFormat
创建新的 TextElement
,并将 TextElement
用作 TextBlock
的内容。从 TextBlock
创建的文本行。
要修改 FontDescription
对象,请首先检查其 locked
属性。如果为 true,则使用 clone()
方法创建 FontDescription
的没有锁定的副本,更改其属性,并将其分配给一个新的 ElementFormat 对象。然后将此新的 ElementFormat
重新链接到 TextBlock
。重新断开这些行后,新行将具有新的字体设置。
package { import flash.display.Sprite; import flash.text.engine.*; public class FontDescription_cloneExample extends Sprite { private var fd:FontDescription; private var fd2:FontDescription; public function FontDescription_cloneExample():void { fd = new FontDescription(); fd.fontLookup = flash.text.engine.FontLookup.DEVICE; fd.fontName = "Palatino"; fd.fontWeight = flash.text.engine.FontWeight.BOLD; fd.fontPosture = flash.text.engine.FontPosture.ITALIC; var ef1:ElementFormat = new ElementFormat(fd); var str:String = "This is flash text 0123456789"; var tb:TextBlock = new TextBlock(); var te1:TextElement = new TextElement(str, ef1); tb.content = te1; var line1:TextLine = tb.createTextLine(null, 600); addChild(line1); fd2 = (fd.locked) ? fd.clone() : fd; fd2.fontWeight = flash.text.engine.FontWeight.NORMAL; var ef2:ElementFormat = new ElementFormat(fd2); tb.content.elementFormat=ef2; var line2:TextLine = tb.createTextLine(null, 600); addChild(line2); } } }
isDeviceFontCompatible | () | 方法 |
public static function isDeviceFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.1, AIR 2 |
如果可用的设备字体可与指定的 fontName
、fontWeight
和 fontPosture
配合使用,则返回 true。
flash.text.engine 类只能使用 OpenType 和 TrueType 设备字体。如果使用基于早期字体技术的字体,则运行时将回退到基于字形的已知设备字体以呈现文本
参数
fontName:String — 要检查的设备字体的名称。
| |
fontWeight:String — 指定字体粗细。使用 FontWeight 。
| |
fontPosture:String — 指定字体形态。使用 FontPosture 。
|
Boolean — 如果兼容的设备字体可用,则返回 true ,否则,返回 false 。
|
引发
ArgumentError — 指定的 fontWeight 不是 FontWeight 的成员。
| |
ArgumentError — 指定的 fontPosture 不是 FontPosture 的成员。
|
相关 API 元素
isFontCompatible | () | 方法 |
public static function isFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5, Flash Lite 4 |
如果使用指定的 fontName
、fontWeight
和 fontPosture
(其中 Font.fontType
为 flash.text.FontType.EMBEDDED_CFF
)的嵌入字体可用,则将返回 true。从 Flash Player 10 开始,两种嵌入字体可显示在应用程序内容中。标准的嵌入字体只能由 TextField 使用。CFF 嵌入字体只能由 flash.text.engine 类使用。两种类型由 enumerateFonts()
函数返回的 Font
类的 fontType
属性加以区分。
flash.text.engine 类不能使用 EMBEDDED
类型的字体。如果 fontLookup
设置为 FontLookup.EMBEDDED_CFF
并且运行时唯一可用的具有指定名称、粗细和形态的字体的类型为 EMBEDDED
,则运行时将回退到基于字形的设备字体以呈现文本,就如同没有任何可用的具有指定名称和样式的嵌入字体。
如果具有相同名称、粗细和形态的 EMBEDDED
和 EMBEDDED_CFF
字体均可用,则将选择 EMBEDDED_CFF
字体并使用 EMBEDDED_CFF
字体呈现文本。
参数
fontName:String — 要检查的嵌入字体的名称。
| |
fontWeight:String — 指定字体粗细。使用 FontWeight 。
| |
fontPosture:String — 指定字体形态。使用 FontPosture 。
|
Boolean — 如果兼容的嵌入字体可用,则为 true ;否则为 false 。
|
引发
ArgumentError — 指定的 fontWeight 不是 FontWeight 的成员。
| |
ArgumentError — 指定的 fontPosture 不是 FontPosture 的成员。
|
相关 API 元素
此示例将创建一个 FontDescription
对象、将设备字体分配给该对象、设置各种字体属性并将新对象分配给 ElementFormat
对象。附加字体格式设置是在 ElementFormat
中完成的。使用 ElementFormat
创建新的 TextElement
,并将 TextElement
用作 TextBlock
的内容。从 TextBlock
创建的文本行。
package { import flash.display.Sprite; import flash.text.engine.*; public class FontDescriptionExample extends Sprite { public function FontDescriptionExample():void { var fd:FontDescription = new FontDescription(); fd.fontLookup = flash.text.engine.FontLookup.DEVICE; fd.fontName = "Palatino"; fd.fontWeight = flash.text.engine.FontWeight.BOLD; fd.fontPosture = flash.text.engine.FontPosture.ITALIC; var ef1:ElementFormat = new ElementFormat(fd); ef1.fontSize = 30; ef1.color = 0xFF0000; var str:String = "This is flash text 0123456789"; var tb:TextBlock = new TextBlock(); var te1:TextElement = new TextElement(str, ef1); tb.content = te1; var line1:TextLine = tb.createTextLine(null, 600); addChild(line1); } } }
Tue Jun 12 2018, 11:04 AM Z