flash.text.engine
public final class FontDescription
继承FontDescription Inheritance Object

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

FontDescription 类表示说明字体所必需的属性。FontDescription 类的属性适用于设备字体和嵌入字体。

FontDescription 对象应用于 ElementFormat,后者又应用于 TextBlock 中的 ContentElement。将 FontDescription 应用于 ElementFormat 后,其 locked 属性将设置为 true。无法更改已锁定 FontDescription 对象的属性。相反,可以使用 clone() 方法创建此对象的没有锁定的副本,可以对此副本进行修改并将其分配给 ElementFormat。

注意:FTE 不支持 Type 1 字体和位图字体,如 Type 3、ATC、sfnt-wrapped CID 或 Naked CID。

查看示例

另请参见

flash.text.engine.ElementFormat.fontDescription


公共属性
 属性定义方
  cffHinting : String
用于此文本的 CFF 提示的类型。
FontDescription
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  fontLookup : String
指定应该如何查找字体。
FontDescription
  fontName : String
要使用的字体的名称或用逗号分隔的字体名称列表。
FontDescription
  fontPosture : String
指定字体形态。
FontDescription
  fontWeight : String
指定字体粗细。
FontDescription
  locked : Boolean
指示 FontDescription 是否已经锁定。
FontDescription
 Inheritedprototype : 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
 Inherited
指示对象是否已经定义了指定的属性。
Object
  
isFontCompatible(fontName:String, fontWeight:String, fontPosture:String):Boolean
[静态] 如果使用指定的 fontName、fontWeight 和 fontPosture(其中的 Font.fontType 为 flash.text.FontType.EMBEDDED_CFF)的嵌入字体可用,则将返回 true。
FontDescription
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
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 对象(lockedtrue)之后进行设置。

另请参见

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 对象(lockedtrue)之后进行设置。
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 对象(lockedtrue)之后进行设置。
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 对象(lockedtrue)之后进行设置。
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 对象(lockedtrue)之后进行设置。
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 对象(lockedtrue)之后进行设置。
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 对象(lockedtrue)之后进行设置。

另请参见

构造函数详细信息
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 的没有锁定的克隆副本。

返回
FontDescriptionFontDescription 对象的没有锁定的副本。

示例

此示例将创建一个 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

如果使用指定的 fontNamefontWeightfontPosture(其中 Font.fontTypeflash.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 将基于每个字型改为使用设备字体来呈现文本,就像没有可用的具有特定名称和样式的嵌入字体一样。

如果具有相同名称、粗细和形态的 EMBEDDEDEMBEDDED_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 的成员。

另请参见

示例 如何使用示例
FontDescriptionExample.as

此示例将创建一个 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);
            
        }
    }    
}