| 包 | flash.text |
| 类 | public class TextLineMetrics |
| 继承 | TextLineMetrics Object |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
flash.text.TextField.getLineMetrics() 方法返回。
有关与包含文本行的文本字段相关的度量值(例如,图中的“文本字段高度”度量值),请参阅 flash.text.TextField。
下图表示了文本字段的点和度量值以及该字段包含的文本行:
相关 API 元素
| 属性 | 由以下参数定义 | ||
|---|---|---|---|
| ascent : Number
文本的上缘值是从基线到行高度顶部的长度,以像素为单位。 | TextLineMetrics | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| descent : Number
文本的下缘值是从基线到行深度底部的长度,以像素为单位。 | TextLineMetrics | ||
| height : Number
高度值是选定行中的文本的高度(并不一定是完整文本),以像素为单位。 | TextLineMetrics | ||
| leading : Number
前导值是文本行之间的垂直距离的度量值。 | TextLineMetrics | ||
| 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 | |
![]() |
返回指定对象的原始值。 | Object | |
ascent | 属性 |
public var ascent:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
文本的上缘值是从基线到行高度顶部的长度,以像素为单位。请参阅此类概述部分的插图中的“上缘”度量值。
相关 API 元素
descent | 属性 |
public var descent:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
文本的下缘值是从基线到行深度底部的长度,以像素为单位。请参阅此类概述部分的插图中的“下缘”度量值。
相关 API 元素
height | 属性 |
public var height:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
高度值是选定行中的文本的高度(并不一定是完整文本),以像素为单位。文本行的高度不包括装订线高度。请参阅此类概述部分的插图中的“行高”度量值。
相关 API 元素
leading | 属性 |
public var leading:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
前导值是文本行之间的垂直距离的度量值。请参阅此类概述部分的插图中的“前导”度量值。
相关 API 元素
width | 属性 |
public var width:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
宽度值是选定行中的文本的宽度(并不一定是完整文本),以像素为单位。文本行的宽度与文本字段的宽度不同。文本行的宽度与文本字段的宽度有关,它等于文本字段的宽度减去 4 个像素的装订线宽度(每边 2 个像素)。请参阅此类概述部分的插图中的“文本行宽度”度量值。
相关 API 元素
x | 属性 |
public var x:Number| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
x 值是第一个字符的左侧位置,以像素为单位。此值包括边距、缩进(如果有)和装订线宽度。请参阅此类概述部分的插图中的“文本行 x 位置”。
相关 API 元素
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, Flash Lite 4 |
创建 TextLineMetrics 对象。TextLineMetrics 对象包含文本字段中文本行的相关文本度量信息。此类的对象由 flash.text.TextField.getLineMetrics() 方法返回。
有关上下文中提到的属性,请参阅此类概述部分的插图。
参数x:Number — 第一个字符的左侧位置,以像素为单位。
| |
width:Number — 选定行中文本的宽度(并不一定是完整文本),以像素为单位。
| |
height:Number — 选定行中文本的高度(并不一定是完整文本),以像素为单位。
| |
ascent:Number — 从基线到行顶部的长度,以像素为单位。
| |
descent:Number — 从基线到行底部的长度,以像素为单位。
| |
leading:Number — 文本行之间的垂直距离度量值。
|
相关 API 元素
- 创建名为
label的 TextField 类型的属性。 - 构造函数调用
configureAssets(),该构造函数可执行以下操作:- 将舞台的对齐方式设置为靠左上角对齐,且不进行缩放。
- 创建新的 TextField 对象,名为
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
+ "]";
}
}
Tue Jun 12 2018, 11:04 AM Z
隐藏继承的公共属性
显示继承的公共属性