getTextExtent (TextFormat.getTextExtent メソッド)

public getTextExtent(text: String, [width: Number]) : Object

my_fmt に指定したフォーマットのテキストストリング text のテキスト寸法情報を返します。text ストリングは標準テキスト (非 HTML) として扱われます。

このメソッドは、6 つのプロパティを持つオブジェクトを返します。ascent、descent、width、height、textFieldHeight、および textFieldWidth があります。すべてのプロパティ値はピクセル単位です。

width パラメータを指定した場合は、指定したテキストに折り返しが適用されます。これにより、指定したすべてのテキストを表示するために必要なテキストボックスの高さを判断することができます。

ascent プロパティはテキスト行のベースラインよりも上の長さ、descent プロパティはテキスト行のベースラインよりも下の長さを表します。最初のテキスト行のベースラインは、テキストフィールドの基準点に ascent パラメータ値を加算した位置になります。

width プロパティと height プロパティは、テキストストリングの幅と高さを示します。textFieldHeight プロパティと textFieldWidth プロパティは、テキストストリング全体を表示するのに必要なテキストフィールドオブジェクトの高さと幅を表します。テキストフィールドの周囲には 2 ピクセル幅の "ふち取り" があるので、textFieldHeight の値は height + 4 になります。同様に、textFieldWidth の値は常に width + 4 になります。

テキストメトリクスに基づいてテキストフィールドを作成する場合は、height ではなく textFieldHeight を、width ではなく textFieldWidth を使用してください。

次の図に、この寸法を示します。



TextFormat オブジェクトをセットアップする際には、フォント名、フォントサイズ、行間を含め、テキストフィールドを作成する際とまったく同じようにすべての属性を設定する必要があります。行間のデフォルト値は 2 です。

使用できるバージョン : ActionScript 1.0、Flash Lite 2.0 - width パラメータは、Flash Player 7 でサポートされています。

パラメータ

text: String - ストリング。

width: Number (オプション) - 指定したテキストを折り返す幅を示す数値 (ピクセル単位)。

戻り値

Object - width、height、ascent、descent、textFieldHeight、textFieldWidth の各プロパティを持つオブジェクト。

次の例では、指定したフォーマットを使ったテキストストリングを表示する、ストリングと同じサイズの単一行テキストフィールドを作成します。

var my_str: String = "Small string";

// TextFormat オブジェクトを作成し、
// そのプロパティを適用する
var my_fmt: TextFormat = new TextFormat();
with (my_fmt) {
    font = "Arial";
    bold = true;
}

// 指定されたフォーマットのテキストストリングについて
// メトリック情報を取得する
var metrics: Object = my_fmt.getTextExtent(my_str);

// テキストを表示するのに十分な大きさのテキストフィールドを作成する
this.createTextField("my_txt", this.getNextHighestDepth(), 100, 100, metrics.textFieldWidth, 
metrics.textFieldHeight);
my_txt.border = true;
my_txt.wordWrap = true;
// my_txt オブジェクトに同じテキストストリングおよび TextFormat オブジェクトを割り当てる
my_txt.text = my_str;
my_txt.setTextFormat(my_fmt);

次の例では、指定したフォーマットのテキストストリングを表示できるだけの高さで、複数行の 100 ピクセル幅のテキストフィールドを作成します。

// TextFormat オブジェクトを作成する
var my_fmt: TextFormat = new TextFormat();
// TextFormat オブジェクトにフォーマットプロパティを指定する
my_fmt.font = "Arial";
my_fmt.bold = true;
my_fmt.leading = 4;

// 表示されるテキストストリング
var textToDisplay: String = "Macromedia Flash Player 7, now with improved text metrics.";

// ストリングのテキスト寸法情報を取得し、
// 100 ピクセルで囲む
var metrics: Object = my_fmt.getTextExtent(textToDisplay, 100);

// 取得したメトリック情報を使用して
// 新しい TextField オブジェクトを作成する
this.createTextField("my_txt", this.getNextHighestDepth(), 50, 50-metrics.ascent, 100, 
metrics.textFieldHeight);
my_txt.wordWrap = true;
my_txt.border = true;
// TextObject にテキストおよび TextFormat オブジェクトを割り当てる
my_txt.text = textToDisplay;
my_txt.setTextFormat(my_fmt);