パッケージ | 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
テキストの ascent 値は、行のベースラインから最上部までの距離です(ピクセル単位)。 | TextLineMetrics | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
descent : Number
テキストの descent 値は、行のベースラインから最下部までの距離です(ピクセル単位)。 | TextLineMetrics | ||
height : Number
選択されている行のテキスト(テキスト全体とは限りません)の高さの値です(ピクセル単位)。 | TextLineMetrics | ||
leading : Number
leading 値は、テキストの行間の垂直距離を測定した結果です。 | TextLineMetrics | ||
width : Number
width の値は、選択されている行のテキスト(テキスト全体とは限りません)の幅です(ピクセル単位)。 | 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 |
テキストの ascent 値は、行のベースラインから最上部までの距離です(ピクセル単位)。このクラスの概要図の「アセント」の測定を参照してください。
関連する API エレメント
descent | プロパティ |
public var descent:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
テキストの descent 値は、行のベースラインから最下部までの距離です(ピクセル単位)。このクラスの概要図の「ディセント」の測定を参照してください。
関連する 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 |
leading 値は、テキストの行間の垂直距離を測定した結果です。このクラスの概要図の「レディング」の測定を参照してください。
関連する API エレメント
width | プロパティ |
public var width:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
width の値は、選択されている行のテキスト(テキスト全体とは限りません)の幅です(ピクセル単位)。テキスト行の幅は、テキストフィールドの幅と同じではありません。テキスト行の幅はテキストフィールドの幅と相対的であり、ふち取りの幅 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 エレメント
- タイプが TextField の
label
という名前のプロパティを作成します。 - コンストラクターが、
configureAssets()
を呼び出し、- ステージの整列を、左上および拡大 / 縮小なしに設定します。
label
という名前の新しい TextField オブジェクトを作成します。label
の背景を有効にし、その色を白に設定します。- 自動折り返しによって、
label
のテキストを複数行にできるようにします。 getLabelText()
の呼び出しの結果を、text
プロパティ(label
)に割り当てます。getLabelText()
メソッドは、タイプが XML の変数を作成し、それをbody
という名前の XML ノードに割り当てます。ここに、長いテキストが格納されます。label
を表示リストに追加します。これにはaddChild()
を使用します。
- ステージで実行される
resize
イベントを受け取るメソッドが追加されます。このメソッドは、resizeHandler()
です。Flash Player のウィンドウサイズが変更されるたびにRESIZE
イベントが送出され、次の処理が行われます。draw()
が呼び出されます。これでlabel
がステージの中央に 10 ピクセルのバッファーに囲まれて表示されるようになります。- 次に、
setTimeout()
が、少し遅れてshowMetrics()
を実行します。この遅延が発生するのは、RESIZE
イベントが完了し、ステージが完全に再描画されるまで行メトリックが更新されないためです。 showMetrics()
は、metrics
という名前の TextLineMetrics 変数をgetLineMetrics()
の呼び出しの結果に割り当て、この変数がreader
という名前の新しい LineMetricsReader インスタンスに渡されます。次に、2 つの変数は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, 10:34 AM Z