| 包 | 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):voidArgumentError —
如果设置的值不是 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):voidIllegalOperationError —
如果在锁定 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):voidIllegalOperationError —
如果在锁定 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):voidArgumentError —
如果设置的值不是 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):voidArgumentError —
如果设置的值不是 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):voidIllegalOperationError —
如果在锁定 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):voidArgumentError —
如果设置的值不是 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);
}
}
}