包 | flash.text.engine |
类 | public final class FontDescription |
继承 | FontDescription Object |
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
FontDescription 对象应用于 ElementFormat,后者又应用于 TextBlock 中的 ContentElement。将 FontDescription 应用于 ElementFormat 后,其 locked
属性将设置为 true
。无法更改已锁定 FontDescription 对象的属性。相反,可以使用 clone()
方法创建此对象的没有锁定的副本,可以对此副本进行修改并将其分配给 ElementFormat。
注意:FTE 不支持 Type 1 字体和位图字体,如 Type 3、ATC、sfnt-wrapped CID 或 Naked CID。
另请参见
属性 | 定义方 | ||
---|---|---|---|
cffHinting : String 用于此文本的 CFF 提示的类型。 | FontDescription | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
fontLookup : String 指定应该如何查找字体。 | FontDescription | ||
fontName : String 要使用的字体的名称或用逗号分隔的字体名称列表。 | FontDescription | ||
fontPosture : String 指定字体形态。 | FontDescription | ||
fontWeight : String 指定字体粗细。 | FontDescription | ||
locked : Boolean 指示 FontDescription 是否已经锁定。 | FontDescription | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
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(其中的 Font.fontType 为 flash.text.FontType.EMBEDDED_CFF)的嵌入字体可用,则将返回 true。 | FontDescription | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
指示指定的属性是否存在、是否可枚举。 | Object | ||
设置循环操作动态属性的可用性。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object |
cffHinting | 属性 |
cffHinting:String
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
用于此文本的 CFF 提示的类型。对此属性使用 flash.text.engine.CFFHinting
常量。仅在文本的 flash.text.engine.RenderingMode
属性设置为 flash.text.engine.RenderingMode.CFF
时才应用此属性。
使用的 CFF 提示的类型确定 Flash Player 是否强制让粗水平线适合子像素网格。
仅适用于嵌入字体。
默认值为 flash.text.engine.CFFHinting.HORIZONTAL_STEM
。
对于 flash.text.engine.CFFHinting
属性,您可以使用下列字符串值:
字符串值 | Description |
---|---|
CFFHinting.NONE
| 不指定任何 CFF 提示。对子像素网格不强制在字型中使用水平线。此设置适合动画或大号字。 |
CFFHinting.HORIZONTAL_STEM
|
指定 CFF 提示。粗水平线适合于 LCD 显示器上的子像素网格。若要使用此设置,RenderingMode 属性必须设置为 RenderingMode.CFF 。
|
public function get cffHinting():String
public function set cffHinting(value:String):void
ArgumentError —
如果设置的值不是 flash.text.engine.CFFHinting 的成员。
| |
IllegalOperationError —
如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
另请参见
fontLookup | 属性 |
fontLookup:String
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
指定应该如何查找字体。
默认值为 flash.text.engine.FontLookup.DEVICE
。
若要设置此属性的值,请使用下列字符串值:
字符串值 | Description |
---|---|
FontLookup.DEVICE
|
Flash Player 将在本地系统中查找具有指定 name 的设备字体,并使用该字体呈现文本。
|
FontLookup.EMBEDDED_CFF
|
Flash Player 将查找具有指定 name 的嵌入 CFF 字体,并使用该字体呈现文本。仅考虑类型为 flash.text.Font.fontType.EMBEDDED_CFF 的字体。如果指定的 CFF 字体没有嵌入在 SWF 文件中,则 Flash Player 将尝试对每种字型使用设备替代字体。此方法没有首先选择设备字体的效率高。
|
public function get fontLookup():String
public function set fontLookup(value:String):void
IllegalOperationError —
如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
fontName | 属性 |
fontName:String
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
要使用的字体的名称或用逗号分隔的字体名称列表。Flash Player 使用列表中的第一个可用字体呈现该元素。例如,"Arial, Helvetica, _sans" 使播放器搜索 "Arial";如果没有找到 Arial,则搜索 "Helvetica";如果两者都没找到,则搜索 _sans。
Flash 支持三种通用设备字体名称:_sans(类似于 Helvetica 和 Arial 字体)、_serif(类似于 Times Roman 字体)和 _typewriter(类似于 Courier 字体)。这些字体将映射到特定的设备字体,具体取决于平台。
默认值为 "_serif"
。
Flash Player 将为选定字体中没有的字型提供后备字体。无论正在使用的字体是嵌入字体还是设备字体,只要字体中没有要呈现的字型,Flash Player 便会尝试使用或许包含该字型的另一种设备字体来呈现该字型。
public function get fontName():String
public function set fontName(value:String):void
IllegalOperationError —
如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
fontPosture | 属性 |
fontPosture:String
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
指定字体形态。
仅适用于设备字体。
默认值为 flash.text.engine.FontPosture.NORMAL
。
若要设置此属性的值,请使用下列字符串值:
字符串值 | Description |
---|---|
FontPosture.NORMAL
| 标准字体形态。 |
FontPosture.ITALIC
| 斜体字体形态。 |
public function get fontPosture():String
public function set fontPosture(value:String):void
ArgumentError —
如果设置的值不是 flash.text.engine.FontPosture 的成员。
| |
IllegalOperationError —
如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
fontWeight | 属性 |
fontWeight:String
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
指定字体粗细。
仅适用于设备字体。
默认值为 flash.text.engine.FontWeight.NORMAL
。
若要设置此属性的值,请使用下列字符串值:
字符串值 | Description |
---|---|
FontWeight.NORMAL
| 标准字体的粗细。 |
FontWeight.BOLD
| 粗体字体的粗细。 |
public function get fontWeight():String
public function set fontWeight(value:String):void
ArgumentError —
如果设置的值不是 flash.text.engine.FontWeight 的成员。
| |
IllegalOperationError —
如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
locked | 属性 |
locked:Boolean
[读写] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5. |
指示 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.text.engine.RenderingMode
常量。
仅适用于嵌入字体。
默认值为 flash.text.engine.RenderingMode.CFF
。
若要设置此属性的值,请使用下列字符串值:
字符串值 | Description |
---|---|
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 —
如果设置的值不是 flash.text.engine.RenderingMode 的成员。
| |
IllegalOperationError —
如果在锁定 FontDescription 对象(locked 为 true )之后进行设置。
|
另请参见
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 |
创建一个 FontDescription 对象。
参数fontName:String (default = "_serif ") — 要使用的字体的名称或用逗号分隔的字体名称列表。 | |
fontWeight:String (default = "normal ") — 指定字体粗细。 | |
fontPosture:String (default = "normal ") — 指定字体形态。 | |
fontLookup:String (default = "device ") — 指定如何查找字体。 | |
renderingMode:String (default = "cff ") —
用于此文本的呈现模式。对此属性使用 flash.text.engine.RenderingMode 常量。
| |
cffHinting:String (default = "horizontalStem ") —
用于此文本的 CFF 提示的类型。对此属性使用 flash.text.engine.CFFHinting 常量。
|
ArgumentError —
指定的 fontWeight 不是 flash.text.engine.FontWeight 的成员。
| |
ArgumentError —
指定的 fontPosture 不是 flash.text.engine.FontPosture 的成员。
| |
ArgumentError —
指定的 fontLookup 不是 flash.text.engine.FontLookup 的成员。
| |
ArgumentError —
指定的 renderingMode 不是 flash.text.engine.RenderingMode 的成员。
| |
ArgumentError —
指定的 cffHinting 不是 flash.text.engine.CFFHinting 的成员。
|
clone | () | 方法 |
public function clone():FontDescription
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
构造 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); } } }
isFontCompatible | () | 方法 |
public static function isFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
如果使用指定的 fontName
、fontWeight
和 fontPosture
(其中 Font.fontType
为 flash.text.FontType.EMBEDDED_CFF
)的嵌入字体可用,则将返回 true。启动 Flash Player 10 后,两种嵌入字体可显示在 SWF 文件中。标准的嵌入字体只能由 TextField 使用。CFF 嵌入字体只能由 flash.text.engine 类使用。两种类型由 enumerateFonts()
函数返回的 Font
类的 fontType
属性加以区分。
flash.text.engine 类不能使用 EMBEDDED
类型的字体。如果 fontLookup
设置为 FontLookup.EMBEDDED_CFF
并且在运行时唯一可用的具有指定名称、粗细和形态的字体类型为 EMBEDDED
,则 Flash Player 将基于每个字型改为使用设备字体来呈现文本,就像没有可用的具有特定名称和样式的嵌入字体一样。
如果具有相同名称、粗细和形态的 EMBEDDED
和 EMBEDDED_CFF
字体均可用,则将选择 EMBEDDED_CFF
字体并使用 EMBEDDED_CFF
字体呈现文本。
参数
fontName:String — 要检查的嵌入字体的名称。 | |
fontWeight:String —
指定字体粗细。使用 flash.text.engine.FontWeight 。
| |
fontPosture:String —
指定字体形态。使用 flash.text.engine.FontPosture 。
|
Boolean —
如果兼容的嵌入字体可用,则为 true ;否则为 false 。
|
ArgumentError —
指定的 fontWeight 不是 flash.text.engine.FontWeight 的成员。
| |
ArgumentError —
指定的 fontPosture 不是 flash.text.engine.FontPosture 的成员。
|
另请参见
此示例将创建一个 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); } } }