パッケージflash.text
クラスpublic class TextLineMetrics
継承TextLineMetrics Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

TextLineMetrics クラスには、テキストフィールド内のテキストの位置および テキストの行 のプロパティに関する情報が含まれています。すべてのプロパティ値はピクセル単位です。このクラスのオブジェクトは、flash.text.TextField.getLineMetrics() メソッドによって返されます。

テキストの行を含むテキストフィールドに関する測定 (例えば、次の図の「テキストフィールドの高さ」の測定など) については、flash.text.TextField を参照してください。

次の図に、テキストフィールドおよびフィールドに含まれるテキストの行のポイントと測定を示します。

テキストメトリックを示すイメージ

例を表示

関連項目

flash.text.TextField


パブリックプロパティ
 プロパティ定義元
  ascent : Number
テキストの ascent 値は、行のベースラインから最上部までの距離です (ピクセル単位)。
TextLineMetrics
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  descent : Number
テキストの descent 値は、行のベースラインから最下部までの距離です (ピクセル単位)。
TextLineMetrics
  height : Number
選択されている行のテキスト (テキスト全体とは限りません) の高さの値です (ピクセル単位)。
TextLineMetrics
  leading : Number
leading 値は、テキストの行間の垂直距離を測定した結果です。
TextLineMetrics
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  width : Number
width の値は、選択されている行のテキスト (テキスト全体とは限りません) の幅です (ピクセル単位)。
TextLineMetrics
  x : Number
x 値は、最初の文字の左の位置です (ピクセル単位)。
TextLineMetrics
パブリックメソッド
 メソッド定義元
  
TextLineMetrics(x:Number, width:Number, height:Number, ascent:Number, descent:Number, leading:Number)
TextLineMetrics オブジェクトを作成します。
TextLineMetrics
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
ascentプロパティ
public var ascent:Number

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

テキストの ascent 値は、行のベースラインから最上部までの距離です (ピクセル単位)。このクラスの概要図の「アセント」の測定を参照してください。

関連項目

descentプロパティ 
public var descent:Number

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

テキストの descent 値は、行のベースラインから最下部までの距離です (ピクセル単位)。このクラスの概要図の「ディセント」の測定を参照してください。

関連項目

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

leading 値は、テキストの行間の垂直距離のプロパティです。このクラスの概要図の「レディング」の測定を参照してください。

関連項目

widthプロパティ 
public var width:Number

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

width の値は、選択されている行のテキストの幅です (ピクセル単位)。必ずしもテキスト全体ではありません。テキスト行の幅は、テキストフィールドの幅と同じではありません。テキスト行の幅はテキストフィールドの幅と相対的であり、ふち取りの幅 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 — テキストの行間の垂直距離の測定です。

関連項目

例の使用法
TextLineMetricsExample.as

次の例は、TextLineMetricsExample および LineMetricsReader というクラスを作成し XML オブジェクトを介して Flash Player 内にメッセージを出力します。ここでは以下の手順を実行します。
  1. タイプが TextField の label という名前のプロパティを作成します。
  2. コンストラクタが、configureAssets() を呼び出し、
    • ステージの整列を、左上および拡大 / 縮小なしに設定します。
    • label という名前の新しい TextField オブジェクトを作成します。
    • label の背景を有効にし、その色を白に設定します。
    • 自動折り返しによって、label のテキストを複数行にできるようにします。
    • getLabelText() の呼び出しの結果を、text プロパティ(label)に割り当てます。getLabelText() メソッドは、タイプが XML の変数を作成し、それを body という名前の XML ノードに割り当てます。ここに、長いテキストが格納されます。
    • label を表示リストに追加します。これには addChild() を使用します。
  3. ステージで実行される resize イベントを受け取るメソッドが追加されます。このメソッドは、resizeHandler() () です。Flash Player のウィンドウサイズが変更されるたびに RESIZE イベントが送出され、次の処理が行われます。
    • draw() が呼び出されます。これで label がステージの中央に 10 ピクセルのバッファに囲まれて表示されるようになります。
    • 次に、setTimeout() が、少し遅れて showMetrics() を実行します。この遅延が発生するのは、RESIZE イベントが完了し、ステージが完全に再描画されるまで行メトリックが更新されないためです。
    • showMetrics() は、metrics という名前の TextLineMetrics 変数を getLineMetrics() の呼び出しの結果に割り当て、この変数が reader という名前の新しい LineMetricsReader インスタンスに渡されます。次に、2 つの変数は trace() の呼び出し内で使用され、label の最初の(唯一の)行と、LineMetricsReader インスタンスが toString() メソッドによって提供する情報を出力します。
  4. コンストラクタは強制的に 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
            + "]";
    }
}




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/text/TextLineMetrics.html