flash.text
public class TextFormat
继承TextFormat Inheritance Object
子类 UITextFormat

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9

TextFormat 类描述字符格式设置信息。使用 TextFormat 类可以为文本字段创建特定的文本格式。您可以将文本格式应用于静态文本字段和动态文本字段。TextFormat 类的属性适用于设备字体和嵌入字体。不过,对于嵌入字体,粗体和斜体文本实际上需要特定字体。如果要使用嵌入字体来显示粗体或斜体文本,则需要嵌入该字体的粗体和斜体变体。

必须先使用构造函数 new TextFormat() 创建 TextFormat 对象,才能设置该构造函数的属性。 在使用 TextField.defaultTextFormat 属性或 TextField.setTextFormat() 方法对文本字段应用 TextFormat 对象时,将只应用该对象的已定义的属性。在向 TextField 添加文本前,请使用 TextField.defaultTextFormat 属性应用格式,在向 the TextField 添加文本后,请使用 setTextFormat() 方法添加格式。默认情况下,TextFormat 属性为 null,因为如果没有提供属性值,Flash Player 将使用自己的默认格式设置。Flash Player 用于各个属性的默认格式(如果属性的值为 null)如下所示:

align = "left"
blockIndent = 0
bold = false
bullet = false
color = 0x000000
font = "Times New Roman"(在 Mac OS X 上,默认字体为 Times)
indent = 0
italic = false
kerning = false
leading = 0
leftMargin = 0
letterSpacing = 0
rightMargin = 0
size = 12
tabStops = [] (empty array)
target = ""(empty string)
underline = false
url = ""(empty string)

各个属性的默认格式设置在各自的说明中也有所描述。

查看示例

另请参见

flash.text.TextField.setTextFormat()
flash.text.TextField.defaultTextFormat
flash.text.TextField.getTextFormat()


公共属性
 属性定义方
  align : String
指示段落的对齐方式。
TextFormat
  blockIndent : Object
指示块缩进,以像素为单位。
TextFormat
  bold : Object
指定文本是否为粗体字。
TextFormat
  bullet : Object
指示文本为带项目符号的列表的一部分。
TextFormat
  color : Object
指示文本的颜色。
TextFormat
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  font : String
使用此文本格式的文本的字体名称,以字符串形式表示。
TextFormat
  indent : Object
指示从左边距到段落中第一个字符的缩进。
TextFormat
  italic : Object
指示使用此文本格式的文本是否为斜体。
TextFormat
  kerning : Object
一个布尔值,指示是启用 (true) 还是禁用 (false) 字距调整。
TextFormat
  leading : Object
一个整数,表示行与行之间的垂直间距(称为前导)量。
TextFormat
  leftMargin : Object
段落的左边距,以像素为单位。
TextFormat
  letterSpacing : Object
一个数字,表示在所有字符之间均匀分配的空间量。
TextFormat
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
  rightMargin : Object
段落的右边距,以像素为单位。
TextFormat
  size : Object
使用此文本格式的文本的大小(以像素为单位)。
TextFormat
  tabStops : Array
将自定义 Tab 停靠位指定为一个非负整数的数组。
TextFormat
  target : String
指示显示超链接的目标窗口。
TextFormat
  underline : Object
指示使用此文本格式的文本是带下划线 (true) 还是不带下划线 (false)。
TextFormat
  url : String
指示使用此文本格式的文本的目标 URL。
TextFormat
公共方法
 方法定义方
  
TextFormat(font:String = null, size:Object = null, color:Object = null, bold:Object = null, italic:Object = null, underline:Object = null, url:String = null, target:String = null, align:String = null, leftMargin:Object = null, rightMargin:Object = null, indent:Object = null, leading:Object = null)
创建一个具有指定属性的 TextFormat 对象。
TextFormat
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
属性详细信息
align属性
align:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示段落的对齐方式。有效值为 TextFormatAlign 常数。

默认值为 TextFormatAlign.LEFT.



实现
    public function get align():String
    public function set align(value:String):void

引发
ArgumentError — 指定的 align 不是 flash.text.TextFormatAlign 的成员。

另请参见


示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
blockIndent属性 
blockIndent:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示块缩进,以像素为单位。块缩进应用于整个文本块,即文本的所有行。而普通缩进 (TextFormat.indent) 只影响各段的第一行。如果此属性为 null,则 TextFormat 对象不指定块缩进(块缩进为 0)。



实现
    public function get blockIndent():Object
    public function set blockIndent(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
bold属性 
bold:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指定文本是否为粗体字。默认值为 null,这意味着不使用粗体字。如果值为 true,则文本为粗体字。



实现
    public function get bold():Object
    public function set bold(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
bullet属性 
bullet:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示文本为带项目符号的列表的一部分。在带项目符号的列表中,文本的各段都是缩进的。项目符号显示在各段第一行的左侧。默认值为 null,这意味着不使用带项目符号的列表。



实现
    public function get bullet():Object
    public function set bullet(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
color属性 
color:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示文本的颜色。包含三个 8 位 RGB 颜色成分的数字;例如,0xFF0000 为红色,0x00FF00 为绿色。默认值为 null,这意味着 Flash Player 使用黑色 (0x000000)。



实现
    public function get color():Object
    public function set color(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
font属性 
font:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

使用此文本格式的文本的字体名称,以字符串形式表示。默认值为 null,这意味着 Flash Player 对文本使用 Times New Roman 字体。



实现
    public function get font():String
    public function set font(value:String):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
indent属性 
indent:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示从左边距到段落中第一个字符的缩进。默认值为 null,它指示不使用缩进。



实现
    public function get indent():Object
    public function set indent(value:Object):void

另请参见


示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
italic属性 
italic:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示使用此文本格式的文本是否为斜体。默认值为 null,这意味着不使用斜体。



实现
    public function get italic():Object
    public function set italic(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
kerning属性 
kerning:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

一个布尔值,指示是启用 (true) 还是禁用 (false) 字距调整。通过字距调整可为了提高可读性而调整某些字符对之间的像素,并且只在需要时(如使用大字体标题时)使用字距调整。仅嵌入字体支持字距调整。

某些字体(如宋体)和等宽字体(如 Courier New)不支持字距调整。

默认值为 null,这意味着没有启用字距调整。



实现
    public function get kerning():Object
    public function set kerning(value:Object):void
leading属性 
leading:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

一个整数,表示行与行之间的垂直间距(称为前导)量。默认值为 null,它指示使用的前导量为 0。



实现
    public function get leading():Object
    public function set leading(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
leftMargin属性 
leftMargin:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

段落的左边距,以像素为单位。默认值为 null,它指示左边距为 0 像素。



实现
    public function get leftMargin():Object
    public function set leftMargin(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
letterSpacing属性 
letterSpacing:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

一个数字,表示在所有字符之间均匀分配的空间量。该值指定在每个字符之后添加到进距的像素数。默认值为 null,这意味着使用的字母间距为 0 个像素。可以使用十进制值,如 1.75



实现
    public function get letterSpacing():Object
    public function set letterSpacing(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
rightMargin属性 
rightMargin:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

段落的右边距,以像素为单位。默认值为 null,它指示右边距为 0 像素。



实现
    public function get rightMargin():Object
    public function set rightMargin(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
size属性 
size:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

使用此文本格式的文本的大小(以像素为单位)。默认值为 null,这意味着使用的大小为 12。



实现
    public function get size():Object
    public function set size(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
tabStops属性 
tabStops:Array  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

将自定义 Tab 停靠位指定为一个非负整数的数组。指定每个 Tab 停靠位,以像素为单位。如果没有指定自定义 Tab 停靠位 (null),则默认的 Tab 停靠位为 4(平均字符宽度)。



实现
    public function get tabStops():Array
    public function set tabStops(value:Array):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
target属性 
target:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示显示超链接的目标窗口。如果目标窗口为空字符串,则文本显示在默认目标窗口 _self 中。可以选择自定义名称或以下四种名称中的一个:_self 指定当前窗口中的当前帧,_blank 指定一个新窗口,_parent 指定当前帧的父级,_top 指定当前窗口中的顶级帧。如果 TextFormat.url 属性是空字符串或 null,则虽然您可以获取或设置此属性,但该属性不起作用。



实现
    public function get target():String
    public function set target(value:String):void

另请参见


示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
underline属性 
underline:Object  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示使用此文本格式的文本是带下划线 (true) 还是不带下划线 (false)。此下划线类似于用 <U> 标签生成的下划线,但后者不是真正的下划线,因为它不能正确地跳过下行字符。默认值为 null,它指示不使用下划线。



实现
    public function get underline():Object
    public function set underline(value:Object):void

示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
url属性 
url:String  [读写]

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

指示使用此文本格式的文本的目标 URL。如果 url 属性为空字符串,则文本没有超链接。默认值为 null,它指示文本没有超链接。

注意:必须使用 htmlText 属性对具有指定文本格式的文本进行设置以使超链接起作用。



实现
    public function get url():String
    public function set url(value:String):void

另请参见


示例
如何使用示例
有关如何使用此属性的说明,请参阅 TextFormat() 构造函数示例。
构造函数详细信息
TextFormat()构造函数
public function TextFormat(font:String = null, size:Object = null, color:Object = null, bold:Object = null, italic:Object = null, underline:Object = null, url:String = null, target:String = null, align:String = null, leftMargin:Object = null, rightMargin:Object = null, indent:Object = null, leading:Object = null)

语言版本: ActionScript 3.0
运行时版本: AIR 1.0 Flash Player 9.

创建一个具有指定属性的 TextFormat 对象。然后可更改 TextFormat 对象的属性以更改文本字段的格式设置。

任何参数都可设置为 null 以指示该参数未定义。所有参数都是可选的;任何省略的参数都被视为 null

参数
font:String (default = null) — 以字符串形式表示的文本字体名称。
 
size:Object (default = null) — 一个指示大小(以像素为单位)的整数。
 
color:Object (default = null) — 使用此文本格式的文本的颜色。 包含三个 8 位 RGB 颜色成分的数字;例如,0xFF0000 为红色,0x00FF00 为绿色。
 
bold:Object (default = null) — 一个布尔值,指示文本是否为粗体字。
 
italic:Object (default = null) — 一个布尔值,指示文本是否为斜体。
 
underline:Object (default = null) — 一个布尔值,指示文本是否带有下划线。
 
url:String (default = null) — 使用此文本格式的文本超链接到的 URL。如果 url 为空字符串,则表示文本没有超链接。
 
target:String (default = null) — 显示超链接的目标窗口。如果目标窗口为空字符串,则文本显示在默认目标窗口 _self 中。如果 url 参数设置为空字符串或值 null,虽然您可以获取或设置此属性,但该属性不起作用。
 
align:String (default = null) — 段落的对齐方式,作为 TextFormatAlign 值。
 
leftMargin:Object (default = null) — 指示段落的左边距,以像素为单位。
 
rightMargin:Object (default = null) — 指示段落的右边距,以像素为单位。
 
indent:Object (default = null) — 一个整数,指示从左边距到段落中第一个字符的缩进。
 
leading:Object (default = null) — 一个数字,指示行与行之间的前导垂直间距量。

示例

在下面的示例中,用户可以从应用于另一个文本字段内容的列表中选择不同的文本格式选项。如果用户单击文本字段的内容,该格式将恢复为默认(原始)格式。

formatTextField 文本字段将在单独的行中列出所有 TextField 类属性选项(kerning 除外)。当用户单击 formatTextField 文本字段中的某一行时,将触发 formatTextFieldClickHandler() 方法。

formatTextFieldClickHandler() 方法调用 TextField.getLineIndexAtPoint() 方法以获取所单击的行的索引,然后调用 TextField.getLineText() 方法以获取行内容。switch 语句将检查该行内容,并相应地设置 newformat TextFormat 对象的属性。然后,setTextFormat() 方法将 contentTextField 文本字段的文本格式设置为新格式。通过单击不同的 formatTextField 行,用户可以将一个不同的格式应用于 contentTextField 文本字段。(Tab 设置是一个数组,它为行中的每个 Tab 定义了单独的 Tab 停靠位。) 如果选择了 urltarget 行,用户必须单击 contentTextField 文本字段才能激活链接并显示目标 URL(Flex 主页)的内容。target 属性的默认值为“_self”,这意味着,如果用户选择了 url 行,则会在当前窗口中显示该内容。要使 target 属性起作用,必须已经在 url 属性中设置了 URL。

如果用户单击 contentTextField 文本字段,将触发 contentTextFieldClickHandler() 方法,它将该字段的格式以及 newFormat TextFormat 对象设置为文本字段的默认(原始)格式。这将清除用户所做的所有格式更改。

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.text.TextFieldAutoSize;
    import flash.events.MouseEvent;
    import flash.text.TextFormatAlign;
    
    public class TextFormat_constructorExample extends Sprite {
        private var contentTextField:TextField = new TextField();
        private var formatTextField:TextField = new TextField();
        private var newFormat:TextFormat = new TextFormat();
        
        public function TextFormat_constructorExample() {
            contentTextField.x = 10;
            contentTextField.y = 10;
            contentTextField.background = true;
            contentTextField.border = true;
            contentTextField.multiline = true;
            contentTextField.wordWrap = true;
            contentTextField.selectable = false;
            contentTextField.width = 250;
            contentTextField.height = 120; 
  
            contentTextField.htmlText = "<p>The TextFormat class represents character formatting "
                + "information. Use the TextFormat class to create specific text formatting "
                + "for text fields." + 
                " </p><br>" + "\tTab One" + "\tTab Two<br>";
              
            formatTextField.x = 10;
            formatTextField.y = 140;
            formatTextField.background = true;
            formatTextField.border = true;
            formatTextField.autoSize = TextFieldAutoSize.LEFT;
            
            formatTextField.text = "align: right\n" + "blockIndent: 10 pixels\n" + "bold:\n" + "bullet:\n" + "color: red\n"
                                + "font: Arial\n" + "indent: 20 pixels\n" + "italic:\n" + "leading: 5 spaces\n" 
                                + "leftMargin: 20 pixels\n" + "letterSpacing: 4 pixels\n" + "rightMargin: 20 pixels\n" 
                                + "size: 16 point\n" + "target: new window\n" + "tabStops: 50 and 150 pixel\n" 
                                + "underline:\n" + "url: Adobe Flex page\n";

            formatTextField.addEventListener(MouseEvent.CLICK, formatTextFieldClickHandler);
            
            contentTextField.addEventListener(MouseEvent.CLICK, contentTextFieldClickHandler);
            
            this.addChild(contentTextField);
            this.addChild(formatTextField);
        }

        private function formatTextFieldClickHandler(e:MouseEvent):void {
                var value:String= "";
                var i:uint = 0;
                var index:int = formatTextField.getLineIndexAtPoint(e.localX, e.localY);
                var line:String = formatTextField.getLineText(index);;

                line = line.substr(0, (line.indexOf(":")));

                switch(line) {
                    case "align":
                        newFormat.align = TextFormatAlign.RIGHT;
                        break;
                    case "blockIndent":
                        newFormat.blockIndent = 10;
                        break;
                    case "bold":
                        newFormat.bold = true;
                        break;
                    case "bullet":
                        newFormat.bullet = true;
                        break;
                    case "color":
                        newFormat.color = 0xFF0000;        
                        break;
                    case "font":
                        newFormat.font = "Arial";
                        break;
                    case "indent":
                        newFormat.indent = 20;
                        break;
                    case "italic":
                        newFormat.italic = true;
                        break;
                    case "leading":
                        newFormat.leading = 5;
                        break;
                    case "leftMargin":
                        newFormat.leftMargin = 20;
                        break;
                    case "letterSpacing":
                        newFormat.letterSpacing = 4;
                        break;
                    case "rightMargin":
                        newFormat.rightMargin = 20;
                        break;
                    case "size":
                        newFormat.size = 16;
                        break;
                    case "tabStops":                
                        newFormat.tabStops = [50, 150];
                        break;
                    case "target":
                        newFormat.url = "http://www.adobe.com/products/flex/";    
                        newFormat.target = "_blank";
                        break;    
                    case "underline":
                        newFormat.underline = true;
                        break;
                    case "url":
                        newFormat.url = "http://www.adobe.com/products/flex/";    
                        break;
                }    

                contentTextField.setTextFormat(newFormat);
        }

        private function contentTextFieldClickHandler(e:MouseEvent):void {
            contentTextField.setTextFormat(contentTextField.defaultTextFormat);
            newFormat = contentTextField.defaultTextFormat;
        }
    }
}
示例 如何使用示例
TextFormatExample.as

下例创建 TextFieldExample 类来显示默认位置 (x = 0, y = 0) 的文本消息。这是使用以下步骤完成的:
  1. 创建了 TextField 类型的 label 属性。
  2. 类构造函数调用函数 configureLabel()
  3. configureLabel() 函数首先创建一个新的 TextField 对象并将其赋给 label 然后将其参数设置为
    • 左对齐文本字段
    • 启用背景填充
    • 启用边框。
  4. 接下来,configureLable() 创建局部变量 format 并将该变量赋给新的 TextFormat 实例,同时将其参数设置为:
    • 字体类型 = 宋体
    • 字体颜色 = 纯红色
    • 字体大小 = 10
    • 字体下划线 = true。
  5. 标签的 defaultTextFormat 属性设置为 format,而 label 实例将添加到显示列表中,此显示列表最初在舞台上显示不包含文本的文本字段(例如具有白色背景的小框)。
  6. 最后(返回构造函数),通过调用以下 setLabel(),标签的文本会设置为在坐标 x = 0,y = 0 处显示“Hello World and welcome to the show”。
package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFormat;


    public class TextFormatExample extends Sprite {
        private var label:TextField;

        public function TextFormatExample() {
            configureLabel();
            setLabel("Hello World and welcome to the show");
        }

        public function setLabel(str:String):void {
            label.text = str;
        }

        private function configureLabel():void {
            label = new TextField();
            label.autoSize = TextFieldAutoSize.LEFT;
            label.background = true;
            label.border = true;

            var format:TextFormat = new TextFormat();
            format.font = "Verdana";
            format.color = 0xFF0000;
            format.size = 10;
            format.underline = true;

            label.defaultTextFormat = format;
            addChild(label);
        }
    }
}