パッケージflash.text.engine
クラスpublic final class TextLine
継承TextLine Inheritance DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

TextLine クラスは、テキストを表示リストに表示するために使用されます。

ActionScript コードから直接 TextLine オブジェクトを作成することはできません。new TextLine() を呼び出すと、例外がスローされます。TextLine オブジェクトを作成するには、TextBlock の createTextLine() メソッドを呼び出します。

TextLine は、その内容をレンダリングするのに必要な最低限の情報をカプセル化します。行のアトムのプロパティについて説明する、いくつかのメソッドを介した操作に役立つ追加情報を取得できます。アトムとは、グラフィックエレメントと文字(結合された文字のグループを含む)の両方、テキスト行を構成する分割できないエンティティについて言及する用語です。これらのメソッドが呼び出されるまで、これらのメソッドが必要とするデータを作成したり、格納したりすることはできません。メモリのオーバーヘッドを避けるため、不必要にアトムデータを作成しないでください。アトムデータが必要なくなった場合、flushAtomData() メソッドを呼び出して、ガベージコレクションで処理されるようにすることができます。

以下のメソッドおよびプロパティは、アトムデータがまだ存在しない場合にそれらを生成します。

テキスト行に対する通常のイベント送出処理が終了した後で、テキスト行が有効な場合は、テキスト行に指定されるコンテンツエレメントオブジェクトの eventMirror プロパティで指定されるイベントディスパッチャにイベントがミラーされます。これらのオブジェクトは、TextLine.mirrorRegions プロパティに記録されます。イベント通知が失敗または停止した場合や、テキスト行が有効ではない場合は、イベントがミラーされません。

マウスイベントのミラーは特殊なケースです。ミラー領域は実際には表示オブジェクトではないので、mouseOver イベントと mouseOut イベントはシミュレートされます。rollOver イベントと rollOut イベントはシミュレートされません。自然に発生するすべての mouseOver イベント、mouseOut イベント、rollOver イベントおよび rollOut イベントは、そのターゲットがテキスト行であるか、テキスト行の子であるかに関係なしに無視され、ミラーされません。

TextLine オブジェクトの起点は、ベースラインの先頭です。 ローマン体のベースラインにラテン語のテキストがある行の垂直位置(y プロパティ)を設定しない場合は、Sprite の最上部の下にテキストのデセンダだけが表示されるので、そこにテキスト行を追加します。次の図を参照してください。

テキストのベースライン

TextLine クラスには、DisplayObjectContainer、InteractiveObject、DisplayObject、EventDispatcher などの祖先クラスがあり、これらからプロパティやメソッドを継承します。以下に示す継承プロパティは TextLine オブジェクトに適用できません。

これらのプロパティを設定しようとすると、テキストエンジンから IllegalOperationError のエラーがスローされます。これらのプロパティは読み取ることはできますが、常にデフォルト値が設定されています。

例を表示

関連項目

ContentElement.eventMirror
TextBlock.createTextLine()
TextLineValidity


パブリックプロパティ
 プロパティ定義元
 InheritedaccessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。
DisplayObject
 Inheritedalpha : Number
指定されたオブジェクトのアルファ透明度値を示します。
DisplayObject
  ascent : Number
[読み取り専用] 行のベースラインから最も高さのある文字の最上部までのピクセル数を指定します。
TextLine
  atomCount : int
[読み取り専用] 行内のアトムの数、つまりスペースおよびグラフィックエレメントを含む、分割できないエレメントの数です。
TextLine
 InheritedblendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。
DisplayObject
 InheritedblendShader : Shader
[書き込み専用] 前景と背景のブレンドに使用するシェーダを設定します。
DisplayObject
 InheritedcacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash Player または Adobe AIR にキャッシュされます。
DisplayObject
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 InheritedcontextMenu : NativeMenu
このオブジェクトに関連付けられたコンテキストメニューを指定します。
InteractiveObject
  descent : Number
[読み取り専用] 行のベースラインから最も下に突き出している文字の最下部までのピクセル数を指定します。
TextLine
 InheriteddoubleClickEnabled : Boolean
オブジェクトが doubleClick イベントを受け取るかどうかを指定します。
InteractiveObject
 Inheritedfilters : Array
表示オブジェクトに現在関連付けられている各フィルタオブジェクトが格納されているインデックス付きの配列です。
DisplayObject
 InheritedfocusRect : Object
このオブジェクトがフォーカス矩形を表示するかどうかを指定します。
InteractiveObject
  hasGraphicElement : Boolean
[読み取り専用] テキスト行がグラフィックエレメントを含んでいるかどうかを示します。
TextLine
 Inheritedheight : Number
表示オブジェクトの高さを示します (ピクセル単位)。
DisplayObject
 InheritedloaderInfo : LoaderInfo
[読み取り専用] この表示オブジェクトが属するファイルのロード情報を含む LoaderInfo オブジェクトを返します。
DisplayObject
 Inheritedmask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。
DisplayObject
  mirrorRegions : Vector.<TextLineMirrorRegion>
[読み取り専用] 行に関連付けられた、TextLineMirrorRegion オブジェクトを含む Vector です。存在しない場合は null になります。
TextLine
 InheritedmouseChildren : Boolean
オブジェクトの子に対してマウスが有効かどうかを調べます。
DisplayObjectContainer
 InheritedmouseEnabled : Boolean
このオブジェクトがマウスメッセージを受け取るかどうかを指定します。
InteractiveObject
 InheritedmouseX : Number
[読み取り専用] マウス位置の x 座標を示します(ピクセル単位)。
DisplayObject
 InheritedmouseY : Number
[読み取り専用] マウス位置の y 座標を示します(ピクセル単位)。
DisplayObject
 Inheritedname : String
DisplayObject のインスタンス名を示します。
DisplayObject
  nextLine : TextLine
[読み取り専用] TextBlock 内の次の TextLine。現在の線がブロック内の最後の行である場合、または行の有効性が TextLineValidity.STATIC の場合は null になります。
TextLine
 InheritednumChildren : int
[読み取り専用] このオブジェクトの子の数を返します。
DisplayObjectContainer
 InheritedopaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。
DisplayObject
 Inheritedparent : DisplayObjectContainer
[読み取り専用] この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。
DisplayObject
  previousLine : TextLine
[読み取り専用] TextBlock 内の前の TextLine。これがブロック内の最初の行である場合、または行の有効性が TextLineValidity.STATIC の場合は null になります。
TextLine
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  rawTextLength : int
[読み取り専用] グラフィックエレメントを表す U+FDEF 文字および行の一部だが表示されない行末の空白を含む、行になったテキストブロック内の生のテキストの長さです。
TextLine
 Inheritedroot : DisplayObject
[読み取り専用] 読み込まれた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。
DisplayObject
 Inheritedrotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。
DisplayObject
 InheritedrotationX : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの x 軸の回転角を度単位で示します。
DisplayObject
 InheritedrotationY : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの y 軸の回転角を度単位で示します。
DisplayObject
 InheritedrotationZ : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの z 軸の回転角を度単位で示します。
DisplayObject
 Inheritedscale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。
DisplayObject
 InheritedscaleX : Number
基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。
DisplayObject
 InheritedscaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール(percentage)を示します。
DisplayObject
 InheritedscaleZ : Number
オブジェクトの基準点から適用されるオブジェクトの奥行きスケール(パーセンテージ)を示します。
DisplayObject
 InheritedscrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界です。
DisplayObject
  specifiedWidth : Number
[読み取り専用] 行を作成したときに、TextBlock.createTextLine() メソッドに対して指定された幅です。
TextLine
 Inheritedstage : Stage
[読み取り専用] 表示オブジェクトのステージです。
DisplayObject
 InheritedtabChildren : Boolean
オブジェクトの子に対してタブが有効かどうかを調べます。
DisplayObjectContainer
 InheritedtabEnabled : Boolean
このオブジェクトがタブ順序に含まれるかどうかを指定します。
InteractiveObject
 InheritedtabIndex : int
SWF ファイル内のオブジェクトのタブ順序を指定します。
InteractiveObject
  textBlock : TextBlock
[読み取り専用] このテキスト行を含む TextBlock。行の有効性が TextLineValidity.STATIC の場合は null になります。
TextLine
  textBlockBeginIndex : int
[読み取り専用] テキストブロックの生のテキストで、行の最初にあたる文字のインデックスです。
TextLine
  textHeight : Number
[読み取り専用] テキスト行の論理的な高さ、つまり ascent + descent に等しくなります。
TextLine
 InheritedtextSnapshot : TextSnapshot
[読み取り専用] この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。
DisplayObjectContainer
  textWidth : Number
[読み取り専用] テキスト行の論理的な幅です。テキストエンジンが行をレイアウトするのに使用します。
TextLine
 Inheritedtransform : Transform
表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。
DisplayObject
  unjustifiedTextWidth : Number
[読み取り専用] 位置揃えをしていない場合の行の幅です。
TextLine
  userData : *
作成者が任意のデータをテキスト行に関連付けるための方法を提供します。
TextLine
  validity : String
テキスト行の現在の有効性を指定します。
TextLine
 Inheritedvisible : Boolean
表示オブジェクトが可視かどうかを示します。
DisplayObject
 Inheritedwidth : Number
表示オブジェクトの幅を示します (ピクセル単位)。
DisplayObject
 Inheritedx : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。
DisplayObject
 Inheritedy : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。
DisplayObject
 Inheritedz : Number
3D 親コンテナを基準にした、DisplayObject インスタンスの z 軸に沿った z 座標位置を示します。
DisplayObject
パブリックメソッド
 メソッド定義元
 Inherited
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
DisplayObjectContainer
 Inherited
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。
DisplayObjectContainer
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
 Inherited
特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。
DisplayObjectContainer
 Inherited
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。
DisplayObjectContainer
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
TextLine の基になるコンテンツを XML ストリングとしてダンプします。
TextLine
  
ガベージコレクションのために行のアトムデータを解放します。
TextLine
  
指定されたインデックス位置にあるアトムの双方向レベルを取得します。
TextLine
  
テキスト行を基準として、指定されたインデックス位置にあるアトムの境界を取得します。
TextLine
  
指定されたインデックス位置にあるベースラインに従って測定したアトムの中心を取得します。
TextLine
  
指定されたインデックス位置にあるアトムのグラフィックを取得します(アトムが文字の場合は null)。
TextLine
  
charIndex パラメータで指定された文字を含むアトムのインデックスを返します。行内の各アトムにその文字が指定されていない場合は -1 を返します。
TextLine
  
x パラメータおよび y パラメータで指定されたポイントにあるアトムのインデックスを返します。そのポイントにアトムがない場合は -1 を返します。
TextLine
  
指定されたインデックス位置にあるアトムのテキストブロック開始インデックスを取得します。
TextLine
  
指定されたインデックス位置にあるアトムのテキストブロック終了インデックスを取得します。
TextLine
  
指定されたインデックス位置にあるアトムの回転を取得します。
TextLine
  
指定されたインデックス位置にあるアトムの左側に単語境界があるかどうかを示します。
TextLine
  
TextBlock.baselineZero を基準にして、指定されたベースラインの位置を取得します。
TextLine
 Inherited
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。
DisplayObject
 Inherited
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。
DisplayObjectContainer
 Inherited
指定された名前に一致する子表示オブジェクトを返します。
DisplayObjectContainer
 Inherited
子 DisplayObject インスタンスのインデックス位置を返します。
DisplayObjectContainer
  
mirror パラメータの指定と mirror プロパティが一致する、行の最初の TextLineMirrorRegion を返します。一致しない場合は null を返します。
TextLine
 Inherited
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子 (または孫など) であるオブジェクトの配列を返します。
DisplayObjectContainer
 Inherited
getRect(targetCoordinateSpace:DisplayObject):Rectangle
シェイプ上の線を除き、targetCoordinateSpace パラメータによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。
DisplayObject
 Inherited
point オブジェクトをステージ (グローバル) 座標から表示オブジェクトの (ローカル) 座標に変換します。
DisplayObject
 Inherited
ステージ(グローバル)座標の 2 次元のポイントを 3 次元の表示オブジェクトの(ローカル)座標に変換します。
DisplayObject
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
表示オブジェクトの境界ボックスを評価して、obj 表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。
DisplayObject
 Inherited
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
表示オブジェクトを評価して、x および y パラメータで指定されたポイントと重複または交差するかどうかを調べます。
DisplayObject
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
3 次元の表示オブジェクトの(ローカル)座標の 3 次元のポイントをステージ(グローバル)座標の 2 次元のポイントに変換します。
DisplayObject
 Inherited
point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。
DisplayObject
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。
DisplayObjectContainer
 Inherited
DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。
DisplayObjectContainer
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 Inherited
表示オブジェクトコンテナの既存の子の位置を変更します。
DisplayObjectContainer
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定された 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。
DisplayObjectContainer
 Inherited
swapChildrenAt(index1:int, index2:int):void
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序 (重ね順) を入れ替えます。
DisplayObjectContainer
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
 Inherited表示オブジェクトが表示リストに追加されたときに送出されます。DisplayObject
 Inherited表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの追加により、ステージ上の表示リストに追加されたときに送出されます。DisplayObject
 Inheritedユーザーがコンテキストメニューから「削除」を選択した場合に送信されます。InteractiveObject
 Inheritedユーザーが同じ InteractiveObject 上でポインティングデバイスのメインボタンを押して離すと送出されます。InteractiveObject
 Inheritedユーザージェスチャが AIR アプリケーションでこのインタラクティブオブジェクトに関連付けられたコンテキストメニューをトリガすると、送出されます。InteractiveObject
 Inheritedユーザーがコピー操作のためにプラットフォーム固有のアクセラレータキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「コピー」を選択した場合に送信されます。InteractiveObject
 Inheritedユーザーがカット操作のためにプラットフォーム固有のアクセラレータキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「カット」を選択した場合に送信されます。InteractiveObject
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
 Inheritedオブジェクトの doubleClickEnabled フラグが true に設定されている場合にユーザーが InteractiveObject をポインティングデバイスのメインボタンで 2 回続けてすばやくクリックすると送出されます。InteractiveObject
 Inherited[ブロードキャストイベント] 再生ヘッドが新しいフレームに入るときに送出されます。DisplayObject
 Inherited[ブロードキャストイベント] 再生ヘッドが現在のフレームを終了するときに送出されます。DisplayObject
 Inherited表示オブジェクトがフォーカスを取得した後に送出されます。InteractiveObject
 Inherited表示オブジェクトがフォーカスを失った後に送出されます。InteractiveObject
 Inherited[ブロードキャストイベント] フレーム表示オブジェクトのコンストラクタが実行した後で、かつフレームスクリプトが実行される前に送出されます。DisplayObject
 Inheritedユーザーがキーを押したときに送出されます。InteractiveObject
 Inheritedユーザーがキーボード操作によってフォーカスを変更しようとすると送出されます。InteractiveObject
 Inheritedユーザーがキーを離したときに送出されます。InteractiveObject
 Inheritedユーザーが同じ InteractiveObject 上でポインティングデバイスの中央ボタンを押して離すと送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンス上でポインティングデバイスの中央ボタンを押したときに送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを押したときに送出されます。InteractiveObject
 Inheritedユーザーがポインティングデバイスでフォーカスを変更しようとすると送出されます。InteractiveObject
 InheritedInteractiveObject の上で、ユーザーがポインティングデバイスを移動させたときに送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。InteractiveObject
 Inheritedマウスホイールが InteractiveObject インスタンス上を回転するときに送出されます。InteractiveObject
 Inheritedユーザーがドラッグジェスチャを止めると、ドラッグイニシエータ InteractiveObject から送出されます。InteractiveObject
 Inheritedドラッグされたオブジェクトがターゲットにドロップされ、そのドロップ操作が DragManager.acceptDragDrop() の呼び出しで受け入れられた場合に、ターゲットの InteractiveObject から送出されます。InteractiveObject
 Inheritedドラッグジェスチャが境界に入ると、InteractiveObject から送出されます。InteractiveObject
 Inheritedドラッグジェスチャが境界を出ると、InteractiveObject から送出されます。InteractiveObject
 Inheritedドラッグジェスチャが境界の範囲内で行われている間、InteractiveObject から継続的に送出されます。InteractiveObject
 Inheritedドラッグ操作の開始時に、DragManager.doDrag() 呼び出しのドラッグイニシエータとして指定されている InteractiveObject から送出されます。InteractiveObject
 Inheritedドラッグ操作が行われている間に、DragManager.doDrag() 呼び出しのドラッグイニシエータとして指定されている InteractiveObject から送出されます。InteractiveObject
 Inheritedユーザーがペースト操作のためにプラットフォーム固有のアクセラレータキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「ペースト」を選択した場合に送信されます。InteractiveObject
 Inherited表示オブジェクトが表示リストから削除されようとしているときに送出されます。DisplayObject
 Inherited表示オブジェクトが、直接、または表示オブジェクトを含むサブツリーの削除により、表示リストから削除されようとしているときに送出されます。DisplayObject
 Inherited[ブロードキャストイベント] 表示リストが更新およびレンダリングされようとしているときに送出されます。DisplayObject
 Inheritedユーザーが同じ InteractiveObject 上でポインティングデバイスの右ボタンを押して離すと送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを押したときに送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンス上でポインティングデバイスのボタンを離したときに送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンスからポインティングデバイスを離したときに送出されます。InteractiveObject
 Inheritedユーザーが InteractiveObject インスタンスにポインティングデバイスを合わせたときに送出されます。InteractiveObject
 Inheritedユーザーがすべて選択操作のためにプラットフォーム固有のアクセラレータキーの組み合わせをアクティブ化したとき、またはコンテキストメニューから「すべて選択」を選択した場合に送信されます。InteractiveObject
 Inheritedオブジェクトの tabChildren フラグの値が変更されたときに送出されます。InteractiveObject
 Inheritedオブジェクトの tabEnabled フラグが変更されたときに送出されます。InteractiveObject
 Inheritedオブジェクトの tabIndex プロパティの値が変更されたときに送出されます。InteractiveObject
パブリック定数
 定数定義元
  MAX_LINE_WIDTH : int = 1000000
[静的] テキスト行の最大要求幅(ピクセル単位)です。
TextLine
プロパティの詳細
ascentプロパティ
ascent:Number  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

行のベースラインから最も高さのある文字の最上部までのピクセル数を指定します。グラフィックエレメントのみを含む TextLine については、ascent を 0 に設定します。



実装
    public function get ascent():Number
atomCountプロパティ 
atomCount:int  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

行内のアトムの数、つまりスペースおよびグラフィックエレメントを含む、分割できないエレメントの数です。

このプロパティにアクセスすると、まだアトムデータが存在しない場合は、アトムデータが作成されます。



実装
    public function get atomCount():int

例外
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

descentプロパティ 
descent:Number  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

行のベースラインから最も下に突き出している文字の最下部までのピクセル数を指定します。グラフィックエレメントのみを含む TextLine については、descent を 0 に設定します。



実装
    public function get descent():Number
hasGraphicElementプロパティ 
hasGraphicElement:Boolean  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

テキスト行がグラフィックエレメントを含んでいるかどうかを示します。



実装
    public function get hasGraphicElement():Boolean

関連項目

mirrorRegionsプロパティ 
mirrorRegions:Vector.<TextLineMirrorRegion>  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

行に関連付けられた、TextLineMirrorRegion オブジェクトを含む Vector です。存在しない場合は null になります。



実装
    public function get mirrorRegions():Vector.<TextLineMirrorRegion>

関連項目

nextLineプロパティ 
nextLine:TextLine  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

TextBlock 内の次の TextLine または null(現在の線がブロック内の最後の行である場合、または行の有効性が TextLineValidity.STATIC の場合)。



実装
    public function get nextLine():TextLine

関連項目

previousLineプロパティ 
previousLine:TextLine  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

TextBlock 内の前の TextLine。これがブロック内の最初の行である場合、または行の有効性が TextLineValidity.STATIC の場合は null になります。



実装
    public function get previousLine():TextLine

関連項目

rawTextLengthプロパティ 
rawTextLength:int  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

グラフィックエレメントを表す U+FDEF 文字および行の一部だが表示されない行末の空白を含む、行になったテキストブロック内の生のテキストの長さです。



実装
    public function get rawTextLength():int

関連項目

specifiedWidthプロパティ 
specifiedWidth:Number  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

行を作成したときに、TextBlock.createTextLine() メソッドに対して指定された幅です。この値は、変更によって行の改行処理が再度必要になるのかどうかを判断するときに便利です。



実装
    public function get specifiedWidth():Number

関連項目

textBlockプロパティ 
textBlock:TextBlock  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

このテキスト行を含む TextBlock。行の有効性が TextLineValidity.STATIC の場合は null になります。



実装
    public function get textBlock():TextBlock

関連項目

textBlockBeginIndexプロパティ 
textBlockBeginIndex:int  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

テキストブロックの生のテキストで、行の最初にあたる文字のインデックスです。



実装
    public function get textBlockBeginIndex():int

関連項目

textHeightプロパティ 
textHeight:Number  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

テキスト行の論理的な高さ、つまり ascent + descent に等しくなります。インキが使用される高さを取得するには、継承された height プロパティにアクセスします。

値は、TextBlock.baselineZero が文字であるかどうかにより、行を結合する文字の最上部と最下部、またはアセントとディセントのいずれかのベースライン間の差に基づいて計算されます。グラフィックエレメントは、これらのベースラインの計算では考慮されません。



実装
    public function get textHeight():Number

関連項目

textWidthプロパティ 
textWidth:Number  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

テキスト行の論理的な幅です。テキストエンジンが行をレイアウトするのに使用します。継承された width プロパティにアクセスし、描画されたすべてのピクセルによる境界ボックスの実際の幅を取得します。



実装
    public function get textWidth():Number

関連項目



この例では、以前の標準の傾きおよび以前のイタリックの行が表示されています。また、それぞれの場合に specifiedWidthtextWidth および width の各プロパティの値をトレースします。トレース出力は次のとおりです。
  • specifiedWidth : 500
  • textWidth : 268.9921875
  • width : 269
  • specifiedWidth : 500
  • textWidth : 267.52734375
  • width : 267.55
 
package {
import flash.display.Sprite;
import flash.text.engine.TextBlock;
import flash.text.engine.TextElement;
import flash.text.engine.TextLine;
import flash.text.engine.FontDescription;
import flash.text.engine.ElementFormat;
import flash.text.engine.FontPosture;

    public class TextLine_textWidthExample extends Sprite {
        
        public function TextLine_textWidthExample() {
            
            var str:String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, ";
            var yPos:Number = 20;
            var fontDescription:FontDescription = new FontDescription();
            var textBlock:TextBlock = new TextBlock();
            fontDescription.fontPosture = FontPosture.NORMAL;
            var format:ElementFormat = new ElementFormat(fontDescription, 12);
            var textElement:TextElement = new TextElement(str, format);
            textBlock.content = textElement;
            createLine(textBlock, yPos);
            var fontDescriptionItalic = fontDescription.clone();
            fontDescriptionItalic.fontPosture = FontPosture.ITALIC;
            var formatItalic = new ElementFormat(fontDescriptionItalic, 12);
            textElement = new TextElement(str, formatItalic);
            textBlock.content = textElement;
            createLine(textBlock, yPos + 20);
        }

        private function createLine(textBlock:TextBlock, yPos:Number):void {
            var textLine:TextLine = textBlock.createTextLine (null, 500);
            trace("specifiedWidth is: " + textLine.specifiedWidth);
            trace("textWidth is: " + textLine.textWidth);
            trace("width is: " + textLine.width);
            addChild(textLine);
            textLine.x = 15;
            textLine.y = yPos;     
        }
    }
}

unjustifiedTextWidthプロパティ 
unjustifiedTextWidth:Number  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

位置揃えをしていない場合の行の幅です。位置揃えされていないテキストの場合、この値は textWidth と同じです。位置揃えされているテキストの場合、この値は位置揃えされていなかった場合の長さであり、textWidth の値が実際の行の幅を表します。例えば、次のストリングが位置揃えされ、幅に 500 を指定して TextBlock.createTextLine() に送信された場合は、実際の幅が 500 ですが、位置揃えされていない幅は 268.9921875 になります。



実装
    public function get unjustifiedTextWidth():Number

関連項目



次の例のストリングが位置揃えされ、幅に 500 を指定して TextBlock.createTextLine() に送信されたときには、実際の幅が 500 になりますが、位置揃えされていない幅は 268.9921875 です。
  import flash.display.Sprite;
  import flash.text.engine.TextBlock;
  import flash.text.engine.TextElement;
  import flash.text.engine.TextLine;
  import flash.text.engine.FontDescription;
  import flash.text.engine.ElementFormat;
  import flash.text.engine.SpaceJustifier;
  import flash.text.engine.LineJustification;

  var str:String = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, ";
  var fontDescription:FontDescription = new FontDescription();
  var textBlock:TextBlock = new TextBlock();
  var format:ElementFormat = new ElementFormat(fontDescription, 12);
  var textElement:TextElement = new TextElement(str, format);
  textBlock.content = textElement;
  var spaceJustifier:SpaceJustifier = new SpaceJustifier("en", LineJustification.ALL_INCLUDING_LAST);
  textBlock.textJustifier = spaceJustifier;
  var textLine:TextLine = textBlock.createTextLine(null, 500);
  textLine.y = 20;

  addChild(textLine);
  trace("textWidth value is: " + textLine.textWidth);  // 500.00244140625
  trace("unjustifiedTextWidth is: " + textLine.unjustifiedTextWidth); // 268.9921875
  
userDataプロパティ 
public var userData:*

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

作成者が任意のデータをテキスト行に関連付けるための方法を提供します。

validityプロパティ 
validity:String

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

テキスト行の現在の有効性を指定します。このプロパティのシステム値は、TextLineValidity クラスのメンバー内に含まれます。このプロパティの設定規則は、次のようになります。

有効性が TextLineValidity のメンバーではないいずれかのストリングに設定される場合、行は USER_INVALID であると見なされます。USER_INVALID は、このような値を表すためにここで使用される抽象値です。

TextBlock のコンテンツが変更されると、Flash Player のコードは、影響を受けたテキスト行、前の行およびすべての継続行を INVALID としてマークします。以前は最初に影響を受けた行にあったコンテンツ部分が、変更によってその前の行に取り込まれるようになる場合、前の行は無効とマークされる必要があります。

新しく改行された行は、常に VALID です。Flash Player は、継続行を VALID から POSSIBLY_INVALID または INVALID に変更することがあります。このコードは、改行内容が同じである場合は POSSIBLY_INVALID の行を VALID に、同じでない場合は INVALID に変更します。

ユーザーコードでは、VALID の行を INVALID または USER_INVALID とマークしたり、USER_INVALID の行を VALID とマークしたりできます。ユーザーコードは、行を POSSIBLY_INVALID とマークすることはできません。

ユーザーコードは、いずれの行も STATIC とマークできます。この操作を行うと、block メンバーが null になります。またこれにより、行のアトムデータがクリアされ、再作成されないようになります。STATIC のテキスト行内のグラフィックエレメントが STATIC のテキスト行の派生元であるテキストブロックから改行された新しいテキスト行の部分である場合、それらはすべて削除され、親が再設定されます。



実装
    public function get validity():String
    public function set validity(value:String):void

例外
ArgumentError — 現在の値が TextLineValidity.STATIC の場合。
 
ArgumentError — 現在の値が TextLineValidity.INVALID で、新しい値が TextValidity.STATIC 以外の値である場合。
 
ArgumentError — 現在の値が TextLineValidity.POSSIBLY_INVALID で、新しい値が TextLineValidity.VALID である場合。
 
ArgumentError — 新しい値が TextLineValidity.POSSIBLY_INVALID の場合。

関連項目

メソッドの詳細
dump()メソッド
public function dump():String

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

TextLine の基になるコンテンツを XML ストリングとしてダンプします。これは自動化されたテストで役立ちます。これにはテキスト、書式およびレンダリング情報が含まれます。Flash Player デバッグ版でのみ使用可能です。

出力について詳しくは、TextBlock.dump() メソッドを参照してください。

注意:このメソッドからのコンテンツおよび出力のフォーマットは、今後変更される可能性があります。アドビ システムズ社は、このメソッドの後方互換性は保証していません。

戻り値
String

関連項目

flushAtomData()メソッド 
public function flushAtomData():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

ガベージコレクションのために行のアトムデータを解放します。「アトム」とは、テキスト行を構成する分割できないエンティティについて言及する用語です。テキストエンジンは、atomCount プロパティにアクセスするか、アトムに関する情報を取り出すメソッドのどれかを呼び出したときにアトムデータを生成します。

関連項目

getAtomBidiLevel()メソッド 
public function getAtomBidiLevel(atomIndex:int):int

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

指定されたインデックス位置にあるアトムの双方向レベルを取得します。TextBlock.bidiLevel と行を構成する文字の Unicode の双方向プロパティの組み合わせで決まります。

例えば、テキストブロックがヘブライ語のテキストで始まる場合、TextBlock.bidiLevel に 1 を設定して、右から左方向をデフォルトに設定します。テキストの中に英語の引用(左から右方向)がある場合は、そのテキストの AtomBidiLevel には 2 が設定されています。その英語の中にアラビア語(右から左方向)が入っている場合には、AtomBidiLevel は 3 になります。アラビア語の中で数字(左から右方向)が出てくる場合は、その数字の AtomBidiLevel の設定値は 4 です。アトムがどの行で終わるかは関係ありません。ヘブライ語のアトムは AtomBidiLevel が 1、英語のアトムは AtomBidiLevel が 2、アラビア語のアトムは AtomBidiLevel が 3、数字のアトムは AtomBidiLevel が 4 です。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

atomIndex:int — アトムの 0 から始まるインデックス値です。つまり、最初のアトムは 0、2 番目のアトムは 1 で、以下同様に続きます。

戻り値
intatomIndex で指定された位置のアトムの双方向レベルです。

例外
RangeError — 指定されたアトムのインデックスは範囲外です。
 
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomBounds()メソッド 
public function getAtomBounds(atomIndex:int):Rectangle

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

テキスト行を基準として、指定されたインデックス位置にあるアトムの境界を取得します。指定されたアトムの境界は、行の水平座標(x)、行の垂直座標(y)、幅(w)および高さ(h)で構成されます。すべての値はピクセル単位です。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

atomIndex:int — アトムの 0 から始まるインデックス値です。つまり、最初のアトムは 0、2 番目のアトムは 1 で、以下同様に続きます。

戻り値
RectangleatomIndex で指定された位置のアトムの境界です。

例外
RangeError — 指定されたアトムのインデックスは範囲外です。
 
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomCenter()メソッド 
public function getAtomCenter(atomIndex:int):Number

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

指定されたインデックス位置にあるベースラインに従って測定したアトムの中心を取得します。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

atomIndex:int — アトムの 0 から始まるインデックス値です。つまり、最初のアトムは 0、2 番目のアトムは 1 で、以下同様に続きます。

戻り値
NumberatomIndex で指定された位置のアトムの中心です。

例外
RangeError — 指定されたアトムのインデックスは範囲外です。
 
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomGraphic()メソッド 
public function getAtomGraphic(atomIndex:int):DisplayObject

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

指定されたインデックス位置にあるアトムのグラフィックを取得します(アトムが文字の場合は null)。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

atomIndex:int — アトムの 0 から始まるインデックス値です。つまり、最初のアトムは 0、2 番目のアトムは 1 で、以下同様に続きます。

戻り値
DisplayObjectatomIndex で指定された位置のアトムのグラフィックです。

例外
RangeError — 指定されたアトムのインデックスは範囲外です。
 
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomIndexAtCharIndex()メソッド 
public function getAtomIndexAtCharIndex(charIndex:int):int

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

charIndex パラメータで指定された文字を含むアトムのインデックスを返します。行内の各アトムにその文字が指定されていない場合は -1 を返します。charIndex は、行を含むテキストブロックのコンテンツ全体に対する相対的な値です。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

charIndex:int — 文字の 0 から始まるインデックス値です。つまり、最初の文字は 0、2 番目の文字は 1 で、以下同様に続きます。

戻り値
intcharIndex の位置にある文字を含むアトムのインデックスです。行内の各アトムにその文字が指定されていない場合は -1 を返します。

例外
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomIndexAtPoint()メソッド 
public function getAtomIndexAtPoint(stageX:Number, stageY:Number):int

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

x パラメータおよび y パラメータで指定されたポイントにあるアトムのインデックスを返します。そのポイントにアトムがない場合は -1 を返します。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

このメソッドが取り出す座標値はグローバル座標なので、MouseEvent.stageX および MouseEvent.stageY プロパティと一緒に使うことが簡単にできます。

パラメータ

stageX:Number — 検査対象のポイントのグローバル x 座標です。
 
stageY:Number — 検査対象のポイントのグローバル y 座標です。

戻り値
int — このポイントにあるアトムのインデックスです。指定されたポイントがどのアトムの上にもない場合は -1 を返します。

例外
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomTextBlockBeginIndex()メソッド 
public function getAtomTextBlockBeginIndex(atomIndex:int):int

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

指定されたインデックス位置にあるアトムのテキストブロック開始インデックスを取得します。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

atomIndex:int — アトムの 0 から始まるインデックス値です。つまり、最初のアトムは 0、2 番目のアトムは 1 で、以下同様に続きます。

戻り値
intatomIndex で指定された位置のアトムのテキストブロック開始インデックスです。

例外
RangeError — 指定されたアトムのインデックスは範囲外です。
 
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomTextBlockEndIndex()メソッド 
public function getAtomTextBlockEndIndex(atomIndex:int):int

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

指定されたインデックス位置にあるアトムのテキストブロック終了インデックスを取得します。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

atomIndex:int — アトムの 0 から始まるインデックス値です。つまり、最初のアトムは 0、2 番目のアトムは 1 で、以下同様に続きます。

戻り値
intatomIndex で指定された位置のアトムのテキストブロック終了インデックスです。

例外
RangeError — 指定されたアトムのインデックスは範囲外です。
 
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomTextRotation()メソッド 
public function getAtomTextRotation(atomIndex:int):String

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

指定されたインデックス位置にあるアトムの回転を取得します。このプロパティには、TextRotation 定数が使用されます。アトムの回転は、エレメントおよび行の累積された回転です。主に、TextLine を操作するときにキャレット(カーソル)の方向を設定するために使用されます。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

atomIndex:int — アトムの 0 から始まるインデックス値です。つまり、最初のアトムは 0、2 番目のアトムは 1 で、以下同様に続きます。

戻り値
StringatomIndex で指定された位置のアトムの回転です。

例外
RangeError — 指定されたアトムのインデックスは範囲外です。
 
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getAtomWordBoundaryOnLeft()メソッド 
public function getAtomWordBoundaryOnLeft(atomIndex:int):Boolean

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

指定されたインデックス位置にあるアトムの左側に単語境界があるかどうかを示します。単語境界は、行に指定される文字の Unicode プロパティに基づいて決定されます。

このメソッドを呼び出すと、まだアトムデータが存在しない場合は、アトムデータが作成されます。

パラメータ

atomIndex:int — アトムの 0 から始まるインデックス値です。つまり、最初のアトムは 0、2 番目のアトムは 1 で、以下同様に続きます。

戻り値
BooleanatomIndex で指定された位置のアトムの左側に単語境界があるかどうかを示すブール値です。

例外
RangeError — 指定されたアトムのインデックスは範囲外です。
 
IllegalOperationError — 行の validity は、TextLineValidity.STATIC です。

関連項目

getBaselinePosition()メソッド 
public function getBaselinePosition(baseline:String):Number

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

TextBlock.baselineZero を基準にして、指定されたベースラインの位置を取得します。

パラメータ

baseline:String — 位置を取得するベースラインです。TextBaseline の値を使用します。

戻り値
NumberTextBlock.baselineZero を基準とする、指定されたベースラインの位置です。

例外
ArgumentError — 指定された baseline が、TextBaseline のメンバーでない場合。

関連項目

getMirrorRegion()メソッド 
public function getMirrorRegion(mirror:EventDispatcher):TextLineMirrorRegion

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

mirror パラメータの指定と mirror プロパティが一致する行の最初の TextLineMirrorRegion を返します。一致しない場合は null を返します。

単一の TextElement でも、双方向および改行の状態によっては 1 行または複数行に対する複数の TextLineMirrorRegion オブジェクトを作成できます。nextRegion および previousRegion プロパティは、1 つのテキストエレメントから生成されたすべてのミラー領域をリンクします。

パラメータ

mirror:EventDispatcher — 検索対象の EventDispatcher ミラーオブジェクトです。

戻り値
TextLineMirrorRegion — 指定された値と mirror プロパティが一致する行の最初の TextLineMirrorRegion です。一致しない場合は null になります。

関連項目

定数の詳細
MAX_LINE_WIDTH定数
public static const MAX_LINE_WIDTH:int = 1000000

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

テキスト行の最大要求幅(ピクセル単位)です。 TextBlock.createTextLine() メソッドはこの定数を width パラメータの値を指定しない場合のデフォルト値として使用します。

関連項目

例の使用法
TextLineExample.as

次の例では、様々なテキスト行およびテキストブロックでアトムを介して、getAtomBounds() を使用して、各テキスト行にフレームを作成する手順を表示します。
  1. NumericStepper コンポーネントをライブラリに追加します。
  2. このコードを FLA と同じディレクトリに TextLineExample.as という名前で保存します。
  3. FLA のプロパティウィンドウでクラスを TextLineExample に設定します。
package {
    import flash.display.Sprite;
    import flash.text.engine.TextBlock;
    import flash.text.engine.TextElement;
    import flash.text.engine.TextLine;
    import flash.text.engine.ElementFormat;
    import flash.text.engine.FontDescription;
    import flash.text.engine.FontPosture;
    import flash.text.engine.FontWeight;
    import fl.controls.NumericStepper;
    import flash.events.Event;
    import flash.geom.Rectangle;
    
    public class TextLineExample extends Sprite {
        
        private var atomStepper:NumericStepper = new NumericStepper();
        private var atomDataContainer:Sprite;
        private var fontDescriptionItalic:FontDescription = new FontDescription("Arial", FontWeight.NORMAL, FontPosture.ITALIC);
        private var fontDescriptionNormal:FontDescription = new FontDescription("Arial", FontWeight.NORMAL , FontPosture.NORMAL);
        private var textBlock:TextBlock = new TextBlock();
        private var textLine:TextLine;
        
        public function TextLineExample():void {
            
            var myText:String = "I am a TextElement, created from a String and assigned " +
            "to the content property of a TextBlock. From the text block, " +
            "the createTextLine() method created these lines, 300 pixels wide, "  +
            "for display." ;
            
            atomStepper.minimum = 0;
            atomStepper.value = 0;
            atomStepper.width = 50;
            addChild(atomStepper);
            atomStepper.x = 20;
            atomStepper.y = 120;
            atomStepper.addEventListener(Event.CHANGE, nsChange);
            
            var directions:String = "Click up / down arrows to frame atoms in text block above.";
            
            var formatItalic:ElementFormat = new ElementFormat(fontDescriptionItalic);
            formatItalic.fontSize = 12;
            var textElement1:TextElement = new TextElement(directions, formatItalic);
            textBlock.content = textElement1;
            createLines(textBlock, 15, 160, 400, this);
            
            var formatNormal:ElementFormat = new ElementFormat(fontDescriptionNormal);
            formatNormal.fontSize = 16;
            var textElement2:TextElement = new TextElement(myText, formatNormal);
            textBlock.content = textElement2;
            createLines(textBlock, 15.0, 20.0, 300, this);
            textLine = textBlock.firstLine;
            atomStepper.maximum = textLine.atomCount - 1;
            showAtom(textLine, 0);
        }
            
        private function nsChange(event:Event):void
        {
            removeAtom(textLine);
            if (atomStepper.value == textLine.atomCount - 1)
            {
                if(textLine != textBlock.lastLine)
                {
                    textLine = textLine.nextLine;
                    atomStepper.maximum = textLine.atomCount - 1;
                    atomStepper.value = 0;
                }
            }
            showAtom(textLine, atomStepper.value);
        }
            
        private function createLines(textBlock, startX, startY, width, container)
        {
            var textLine:TextLine = textBlock.createTextLine (null, width);
            while (textLine)
            {
                textLine.x = startX;
                textLine.y = startY;
                startY += textLine.height + 2;
                container.addChild(textLine);
                textLine = textBlock.createTextLine (textLine, width);
            }
        }
            
        private function showAtom(textLine, i):void
        {
            var box:Sprite = new Sprite();
            var mcGraphics = box.graphics;
            var bounds:Rectangle = textLine.getAtomBounds(i);
            mcGraphics.lineStyle(1, 0xFF0000, 1.0);
            mcGraphics.drawRect(bounds.left, bounds.top, bounds.width, bounds.height);
            textLine.userData = textLine.addChild(box);
            displayAtomData(textLine,i);
        }
            
        private function displayAtomData(textLine, i)
        {
            if(atomDataContainer != null)
                removeChild(atomDataContainer);
            atomDataContainer=new Sprite();
            var format = new ElementFormat(fontDescriptionNormal);
            format.color = 0x00000FF;
            var n:int = 0;
            var nxtY:Number = 0;
            var atomInfo:String = "value of getAtomBidiLevel() is: " + textLine.getAtomBidiLevel(i)+"\n"
            +"value of getAtomCenter() is: " + textLine.getAtomCenter(i)+"\n"
            +"value of getAtomIndexAtCharIndex() is: " + textLine.getAtomIndexAtCharIndex(i)+"\n"
            +"value of getAtomTextBlockBeginIndex() is: " + textLine.getAtomTextBlockBeginIndex(i)+"\n"
            +"value of getAtomTextBlockEndIndex() is: " + textLine.getAtomTextBlockEndIndex(i)+"\n"
            +"value of getAtomTextRotation() is: " + textLine.getAtomTextRotation(i)+"\n";
            var atomtextBlock:TextBlock = new TextBlock();
            var textElement3:TextElement = new TextElement(atomInfo, format);
            atomtextBlock.content = textElement3;
            createLines(atomtextBlock,20,200,500, atomDataContainer)
            addChild(atomDataContainer);
        }
            
        private function removeAtom(textLine):void
        {
            textLine.removeChild(textLine.userData);
        }
    }    
}




 

 

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

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