| 包 | flash.text |
| 类 | public class TextLineMetrics |
| 继承 | TextLineMetrics Object |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
flash.text.TextField.getLineMetrics() 方法返回。
有关与包含文本行的文本字段相关的度量值(例如,图中的“文本字段高度”度量值),请参阅 flash.text.TextField。
下图指示了文本字段的点和度量值以及该字段包含的文本行:
另请参见
| 属性 | 定义方 | ||
|---|---|---|---|
| ascent : Number 文本的上升值是从基线到行高度顶部的长度,以像素为单位。 | TextLineMetrics | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| descent : Number 文本的下降值是从基线到行深度底部的长度,以像素为单位。 | TextLineMetrics | ||
| height : Number 高度值是选定行中的文本的高度(并不一定是完整文本),以像素为单位。 | TextLineMetrics | ||
| leading : Number 前导值是文本行之间的垂直距离的度量值。 | TextLineMetrics | ||
![]() | prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | |
| width : Number 宽度值是选定行中的文本的宽度(并不一定是完整文本),以像素为单位。 | TextLineMetrics | ||
| x : Number x 值是第一个字符的左侧位置,以像素为单位。 | TextLineMetrics | ||
| 方法 | 定义方 | ||
|---|---|---|---|
TextLineMetrics(x:Number, width:Number, height:Number, ascent:Number, descent:Number, leading:Number) 创建 TextLineMetrics 对象。 | TextLineMetrics | ||
![]() |
指示对象是否已经定义了指定的属性。 | Object | |
![]() |
指示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
![]() |
指示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | Object | |
| ascent | 属性 |
public var ascent:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
文本的上升值是从基线到行高度顶部的长度,以像素为单位。请参阅此类概述部分的插图中的“上升”度量值。
另请参见
| descent | 属性 |
public var descent:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
文本的下降值是从基线到行深度底部的长度,以像素为单位。请参阅此类概述部分的插图中的“下降”度量值。
另请参见
| height | 属性 |
public var height:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
高度值是选定行中的文本的高度(并不一定是完整文本),以像素为单位。文本行的高度不包括装订线高度。请参阅此类概述部分的插图中的“行高”度量值。
另请参见
| leading | 属性 |
public var leading:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
前导值是文本行之间的垂直距离的度量值。请参阅此类概述部分的插图中的“前导”度量值。
另请参见
| width | 属性 |
public var width:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
宽度值是选定行中的文本的宽度(并不一定是完整文本),以像素为单位。文本行的宽度与文本字段的宽度不同。文本行的宽度与文本字段的宽度有关,它等于文本字段的宽度减去 4 个像素的装订线宽度(每边 2 个像素)。请参阅此类概述部分的插图中的“文本行宽度”度量值。
另请参见
| x | 属性 |
public var x:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
x 值是第一个字符的左侧位置,以像素为单位。此值包括边距、缩进(如果有)和装订线宽度。请参阅此类概述部分的插图中的“文本行 x 位置”。
另请参见
| TextLineMetrics | () | 构造函数 |
public function TextLineMetrics(x:Number, width:Number, height:Number, ascent:Number, descent:Number, leading:Number)| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0 Flash Player 9 |
创建 TextLineMetrics 对象。TextLineMetrics 对象包含文本字段中文本行的相关文本度量信息。此类的对象由 flash.text.TextField.getLineMetrics() 方法返回。
有关上下文中提到的属性,请参阅此类概述部分的插图。
参数x:Number — 第一个字符的左侧位置,以像素为单位。 | |
width:Number — 选定行中文本的宽度(并不一定是完整文本),以像素为单位。 | |
height:Number — 选定行中文本的高度(并不一定是完整文本),以像素为单位。 | |
ascent:Number — 从基线到行顶部的长度,以像素为单位。 | |
descent:Number — 从基线到行底部的长度,以像素为单位。 | |
leading:Number — 文本行之间的垂直距离度量值。 |
另请参见
label 的 TextField 类型的属性。
configureAssets(),该构造函数可执行以下操作:
label。
label 的背景并将颜色设置为白色。
label 的文本通过自动换行来跨多行。
getLabelText() 调用的结果赋给 label 的 text 属性。getLabelText() 方法创建一个 XML 类型的变量并将该变量赋给一个名为 body 的 XML 节点,该节点填充了一个长句子。
addChild() 将 label 添加到显示列表中。
resize 事件的方法,方法名为 resizeHandler()。每次更改 Flash Player 窗口大小时,都会调度 RESIZE 事件,并执行以下操作:
draw() 以确保 label 显示在舞台的中央,并在四周各留出 10 像素的缓冲距离。
setTimeout() 然后在短暂的延迟后执行 showMetrics()。添加延迟的原因是,在 RESIZE 事件完成并且舞台被完全重绘以前,行度量不会更新。
showMetrics() 将名为 metrics 的 TextLineMetrics 变量赋给对 getLineMetrics() 的调用结果,然后将此变量传递给 LineMetricsReader 实例的新实例,新实例名为 reader。然后,在对 trace() 的调用中使用这两个变量,以输出 label 的第一行(只有这一行)和由 LineMetricsReader 实例通过其 toString() 方法提供的信息。
resize 事件的一次调度,以便在第一次加载 SWF 文件时迫使 label 绘制正确。
package {
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.*;
import flash.text.TextField;
import flash.text.TextLineMetrics;
import flash.utils.setTimeout;
public class TextLineMetricsExample extends Sprite {
private var gutter:int = 10;
private var label:TextField;
public function TextLineMetricsExample() {
configureAssets();
configureListeners();
resizeHandler(new Event(Event.RESIZE));
}
private function showMetrics():void {
var metrics:TextLineMetrics = label.getLineMetrics(0);
var reader:LineMetricsReader = new LineMetricsReader(metrics);
trace("lineText: " + label.getLineText(0));
trace("metrics: " + reader);
}
private function configureAssets():void {
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
label = new TextField();
label.background = true;
label.backgroundColor = 0xFFFFFF;
label.multiline = true;
label.wordWrap = true;
label.text = getLabelText();
addChild(label);
}
private function configureListeners():void {
stage.addEventListener(Event.RESIZE, resizeHandler);
}
private function resizeHandler(event:Event):void {
draw();
setTimeout(showMetrics, 100);
}
private function draw():void {
label.x = gutter;
label.y = gutter;
label.width = stage.stageWidth - (gutter * 2);
label.height = stage.stageHeight - (gutter * 2);
}
private function getLabelText():String {
var text:XML = <body>The Flex product line enables developers to build rich Internet applications that blend the responsiveness of desktop software, the cross-platform reach of the web, and the expressiveness of the Flash Platform.</body>
return text.toString();
}
}
}
import flash.text.TextLineMetrics;
class LineMetricsReader {
private var metrics:TextLineMetrics;
public function LineMetricsReader(metrics:TextLineMetrics) {
this.metrics = metrics;
}
public function toString():String {
return "[TextLineMetrics ascent:" + metrics.ascent
+ ", descent:" + metrics.descent
+ ", leading:" + metrics.leading
+ ", width:" + metrics.width
+ ", height:" + metrics.height
+ ", x:" + metrics.x
+ "]";
}
}