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

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

TextBlock クラスは、表示リストに配置して表示できる TextLine オブジェクトを作成するためのファクトリです。

Unicode 双方向アルゴリズムおよび改行アルゴリズムは一度に 1 つの段落に対して実行されるので、TextBlock クラスは単一の段落が含まれることを想定しています。複数の段落でテキストを構成するアプリケーションは、テキストを段落に分割し、段落ごとに 1 つの TextBlock を作成するために、マークアップ言語またはテキスト解析を使用します。

TextBlock オブジェクトは、ContentElement クラスのインスタンスである content プロパティにそのコンテンツを格納します。ContentElement クラスのインスタンスを作成することはできないため、content をそのサブクラスである TextElement、GraphicElement または GroupElement のいずれかのインスタンスに設定します。純粋なテキストコンテンツには TextElement、イメージコンテンツまたはグラフィックコンテンツには GraphicElement、TextElement オブジェクト、GraphicElement オブジェクトおよびその他の GroupElement オブジェクトの組み合わせを含むコンテンツには GroupElement を使用します。フォーマットされたテキスト範囲、埋め込みのサブテキストおよびグラフィックエレメントの管理について詳しくは、ContentElement クラスおよびそのサブクラスを参照してください。

TextBlock インスタンスを作成して content プロパティを設定した後、createTextLine() メソッドを呼び出して TextLine クラスのインスタンスのテキスト行を作成します。

例を表示

関連項目

ContentElement
GraphicElement
GroupElement
TextBaseline
TextElement
TextJustifier
TextLine
TextRotation
TabStop


パブリックプロパティ
 プロパティ定義元
  applyNonLinearFontScaling : Boolean
WYSIWYG 印刷の再現性を犠牲にして、画面の外観を強調するように指定します。
TextBlock
  baselineFontDescription : FontDescription
行の内容には関係なく、ブロックから作成されたすべての行に対するベースラインを特定するために使用されるフォントです。
TextBlock
  baselineFontSize : Number
ブロックから作成された行に対するベースラインを計算するのに使用されるフォントサイズです。
TextBlock
  baselineZero : String
このブロックから作成した行に対して y=0 であるベースラインを指定します。
TextBlock
  bidiLevel : int
テキストブロック内のテキストのデフォルトの双方向埋め込みレベルを指定します。
TextBlock
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  content : ContentElement
テキストブロックの内容を保持します。
TextBlock
  firstInvalidLine : TextLine
[読み取り専用] TextLine.validity と TextLineValidity.VALID が等しくない、テキストブロックで最初の行を指定します。
TextBlock
  firstLine : TextLine
[読み取り専用] TextBlock 内の最初の TextLine(存在する場合)です。
TextBlock
  lastLine : TextLine
[読み取り専用] TextBlock 内の最後の TextLine(存在する場合)です。
TextBlock
  lineRotation : String
テキストブロックのテキスト行を単位として回転します。
TextBlock
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  tabStops : Vector.<TabStop>
テキストブロック内のテキストのタブストップを TabStop オブジェクトの Vector の形式で指定します。
TextBlock
  textJustifier : TextJustifier
行の作成時に使用する TextJustifier を指定します。
TextBlock
  textLineCreationResult : String
[読み取り専用] createTextLine() 操作の結果を示します。
TextBlock
  userData : *
作成者が任意のデータをテキストブロックに関連付けるための方法を提供します。
TextBlock
パブリックメソッド
 メソッド定義元
  
TextBlock(content:ContentElement = null, tabStops:Vector.<TabStop> = null, textJustifier:TextJustifier = null, lineRotation:String = "rotate0", baselineZero:String = "roman", bidiLevel:int = 0, applyNonLinearFontScaling:Boolean = true, baselineFontDescription:FontDescription = null, baselineFontSize:Number = 12.0)
TextBlock オブジェクトを作成します。
TextBlock
  
createTextLine(previousLine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):TextLine
テキストブロックの内容からテキスト行を作成し、その場合に previousLine パラメータで指定されたポイントで開始し、width パラメータで指定されたポイントで改行するように指示します。
TextBlock
  
TextBlock の基になるコンテンツを XML ストリングとしてダンプします。
TextBlock
  
findNextAtomBoundary(afterCharIndex:int):int
指定された文字インデックスの次のアトム境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。
TextBlock
  
findNextWordBoundary(afterCharIndex:int):int
指定された文字インデックスの次の単語境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。
TextBlock
  
指定された文字インデックスの前のアトム境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。
TextBlock
  
指定された文字インデックスの前の単語境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。
TextBlock
  
charIndex パラメータで指定された位置の文字を含む TextLine を返します。
TextBlock
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
  
releaseLines(firstLine:TextLine, lastLine:TextLine):void
TextBlock によって維持される行のリストから、テキスト行の範囲を削除します。
TextBlock
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
プロパティの詳細
applyNonLinearFontScalingプロパティ
applyNonLinearFontScaling:Boolean

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

WYSIWYG 印刷の再現性を犠牲にして、画面の外観を強調するように指定します。非線形の拡大 / 縮小をサポートするプラットフォームおよびフォントについては、このプロパティを true に設定すると、それらのメトリックを使用できるようになりますが、特に小さなポイントサイズの場合の WYSIWYG 印刷の再現性がいくらか犠牲になります。

デフォルト値は true です。



実装
    public function get applyNonLinearFontScaling():Boolean
    public function set applyNonLinearFontScaling(value:Boolean):void
baselineFontDescriptionプロパティ 
baselineFontDescription:FontDescription

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

行の内容には関係なく、ブロックから作成されたすべての行に対するベースラインを特定するために使用されるフォントです。ベースラインは、フォントおよびフォントサイズによって異なります。

デフォルト値は null です。ベースラインフォントが null の場合、ベースラインフォントのサイズは無視され、いずれの行に対するベースラインも、行内の最大のテキストのフォントおよびサイズによって決まります。baselineFontDescription および baselineFontSize の両方を指定すると、それらの内容に関係なく、テキストブロックのすべての行に対するベースラインを決定します。この組み合わせは、文字体裁で最も役立ちます。



実装
    public function get baselineFontDescription():FontDescription
    public function set baselineFontDescription(value:FontDescription):void

関連項目

baselineFontSizeプロパティ 
baselineFontSize:Number

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

ブロックから作成された行に対するベースラインを計算するのに使用されるフォントサイズです。ベースラインは、フォントおよびフォントサイズによって異なります。

デフォルト値は 12 です。ベースラインフォントが null の場合、ベースラインフォントのサイズは無視され、いずれの行に対するベースラインも、行内の最大のテキストのフォントおよびサイズによって決まります。



実装
    public function get baselineFontSize():Number
    public function set baselineFontSize(value:Number):void

例外
ArgumentError — 指定された baselineFontSize が、0 未満です。

関連項目

baselineZeroプロパティ 
baselineZero:String

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

このブロックから作成した行に対して y=0 であるベースラインを指定します。このプロパティの有効な値は、TextBaseline クラスのメンバー内に含まれます。

デフォルト値は、TextBaseline.ROMAN です。

このプロパティの値を設定するには、次のストリング値を使用します。

ストリング値説明
TextBaseline.ROMAN行のローマン体のベースラインが y=0 になります。
TextBaseline.ASCENT行のアセントのベースラインが y=0 になります。
TextBaseline.DESCENT行のディセントのベースラインが y=0 になります。
TextBaseline.IDEOGRAPHIC_TOP行の文字最上部のベースラインが y=0 になります。
TextBaseline.IDEOGRAPHIC_CENTER行の文字の中心のベースラインが y=0 になります。
TextBaseline.IDEOGRAPHIC_BOTTOM行の文字最下部のベースラインが y=0 になります。



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

例外
ArgumentError TextBaseline のメンバーではないいずれかの値に設定する場合。

関連項目

bidiLevelプロパティ 
bidiLevel:int

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

テキストブロック内のテキストのデフォルトの双方向埋め込みレベルを指定します。偶数値は左から右の方向を意味し、奇数値は右から左の方向を意味します。特定のテキストが左から右または右から左の方向に埋め込まれるレベル数を示すには、bidiLevel をインクリメントすることができます。

デフォルト値は 0 です。

bidiLevel を変更すると、すべての前の改行の有効性が TextLineValidity.INVALID に変わります。bidiLevel の変更後、firstInvalidLine プロパティは firstLine プロパティに等しくなるため、TextBlock のすべての行を再度改行する必要があります。



実装
    public function get bidiLevel():int
    public function set bidiLevel(value:int):void

例外
ArgumentError — 0 未満の値に設定する場合。


この例は、まず bidiLevel even、次に bidiLevel odd でレンダリングされた同じテキストストリング(論理的順序:a、b、c、alef、bet、gimel)を示します。

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;
    
    public class TextBlock_bidiLevelExample extends Sprite {
        
        public function TextBlock_bidiLevelExample():void {             
            var fontSize:Number = 36;

            var format:ElementFormat = new ElementFormat();        
            format.fontDescription = new FontDescription("Adobe Hebrew");
            format.fontSize = fontSize;
            var y:Number = 0;
            var leading:Number = fontSize * 0.2;
            var text:String = "abc" + String.fromCharCode(0x05D0, 0x05D1, 0x05D2);

            var textBlock:TextBlock = new TextBlock();
            textBlock.content = new TextElement(text, format);
                        
            // bidiLevel even
            textBlock.bidiLevel = 0;
            var textLine = textBlock.createTextLine(null, 400);
            y += leading + textLine.ascent;
            textLine.y = y;
            y += textLine.descent;
            addChild(textLine);      
            
            // bidiLevel odd
            textBlock.content = new TextElement(text, format);
            textBlock.bidiLevel = 1;
            textLine = textBlock.createTextLine(null, 400);
            y += leading + textLine.ascent;          
            textLine.y = y;
            addChild(textLine);   
        }
    }
}
contentプロパティ 
content:ContentElement

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

テキストブロックの内容を保持します。ContentElement は、基本クラスであるため、content を ContentElement サブクラスのインスタンスである、TextElement、GraphicElement または GroupElement に割り当てます。TextElement オブジェクトは String、GraphicElement オブジェクトは DisplayObject、GroupElement は、1 つ以上の TextElement、GraphicElement またはその他の GroupElement オブジェクトを含む Vector オブジェクトをそれぞれ含みます。均一なテキストの段落には TextElement、グラフィックには GraphicElement、テキストエレメントとグラフィックエレメントの組み合わせ、またはこれらのエレメントの複数のインスタンスには GroupElement をその他の GroupElement オブジェクトと共に使用します。

デフォルト値は null です。

content プロパティを変更すると、以前作成されたすべての行の有効性が TextLineValidity.INVALID に変わります。content の変更後、firstInvalidLine プロパティは firstLine プロパティに等しくなるため、TextBlock のすべての行を再度改行する必要があります。



実装
    public function get content():ContentElement
    public function set content(value:ContentElement):void

例外
ArgumentError ContentElement の既知のサブクラスではない値に設定する場合。
 
ArgumentError — 指定された value は、既にグループのメンバーです。

関連項目

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

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

TextLine.validityTextLineValidity.VALID が等しくない、テキストブロックで最初の行を指定します。

デフォルト値は null です。



実装
    public function get firstInvalidLine():TextLine

関連項目

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

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

TextBlock 内の最初の TextLine(存在する場合)です。

デフォルト値は null です。



実装
    public function get firstLine():TextLine

関連項目

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

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

TextBlock 内の最後の TextLine(存在する場合)です。

デフォルト値は null です。



実装
    public function get lastLine():TextLine

関連項目

lineRotationプロパティ 
lineRotation:String

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

テキストブロックのテキスト行を単位として回転します。有効にするには createTextLine() メソッドは lineRotation を設定してから呼び出します。デフォルト値は、TextRotation.ROTATE_0 です。

文字の最終的な回転は、ElementFormat.textRotationContentElement.textRotation および TextBlock.lineRotation の値によって異なります。

TextBlock.lineRotation は一般に、日中韓のテキストで使用されます。縦書きの日本語テキストの段落を作成するには、次の処理を行います。

  1. TextBlock.lineRotation プロパティを TextRotation.ROTATE_90 に設定します。
  2. コンテンツの ElementFormat.textRotation プロパティをデフォルトの TextRotation.AUTO のままにしておきます。

このプロパティの値を設定するには、TextRotation クラスで定義される次の定数を使用します。

ストリング値説明
TextRotation.ROTATE_0行は回転しません。
TextRotation.ROTATE_90行は時計回りに 90 度回転します。
TextRotation.ROTATE_180行は 180 度回転します。
TextRotation.ROTATE_270行は時計回りに 270 度回転します。
TextRotation.AUTOサポートされません。



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

例外
ArgumentError TextRotation のメンバーではないいずれかの値に設定する場合。
 
ArgumentError TextRotation.AUTO に設定する場合。

関連項目



この例では、TextBlock に日本語テキストを追加し、lineRotation() プロパティを TextRotation.ROTATE_90 に設定して、行を垂直に表示します。

package {
    import flash.display.Sprite;
    import flash.text.engine.FontDescription;
    import flash.text.engine.TextBlock;
    import flash.text.engine.TextElement;
    import flash.text.engine.TextLine;
    import flash.text.engine.TextRotation;
    import flash.text.engine.ElementFormat;
    
    public class TextBlock_lineRotationExample extends Sprite {
        
        public function TextBlock_lineRotationExample():void {
            var Japanese:String = String.fromCharCode(
                0x5185, 0x95A3, 0x5E9C, 0x304C, 0x300C, 0x653F, 0x5E9C, 0x30A4,
                0x30F3, 0x30BF, 0x30FC, 0x30CD, 0x30C3, 0x30C8, 0x30C6, 0x30EC, 
                0x30D3, 0x300D, 0x306E, 0x52D5, 0x753B, 0x914D, 0x4FE1, 0x5411, 
                0x3051, 0x306B, 0x30A2, 0x30C9, 0x30D3, 0x30B7, 0x30B9, 0x30C6, 
                0x30E0, 0x30BA, 0x793E, 0x306E
            ) +
            "FMS 2" +
            String.fromCharCode(0x3092, 0x63A1, 0x7528, 0x3059, 0x308B, 0x3068, 
                0x767a, 0x8868, 0x3057, 0x307e, 0x3057, 0x305F, 0x3002);

            var fontDescription:FontDescription = new FontDescription("MS Mincho");
            var format:ElementFormat = new ElementFormat();
            format.fontSize = 15;
            format.fontDescription = fontDescription;
                        
            var textElement:TextElement = new TextElement(Japanese, format); 
            var textBlock:TextBlock = new TextBlock();
            textBlock.content = textElement;
            textBlock.lineRotation = TextRotation.ROTATE_90;

            var linePosition:Number = this.stage.stageWidth - 120;
            var previousLine:TextLine = null;
        
            while (true) {
                var textLine:TextLine = textBlock.createTextLine(
                    previousLine, 
                    300);
                if (textLine == null) 
                    break;
                textLine.y = 30;    
                textLine.x = linePosition;
                linePosition -= 24;
                addChild(textLine);                
                previousLine = textLine;
            }        
        }
    }
}
tabStopsプロパティ 
tabStops:Vector.<TabStop>

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

テキストブロック内のテキストのタブストップを TabStop オブジェクトの Vector の形式で指定します。

デフォルト値は null です。これは、タブストップが有効にならないことを意味します。 タブストップが設定されていないときは、タブ文字(\t)があると改行します。

tabStops プロパティが設定されているときは、TextBlock によって内部使用のために Vector のコピーが作成されます。元の Vector またはそのコンテンツを変更しても TextBlock には影響しません。tabStops プロパティを照会すると、内部 Vector のコピーが返されます。この返された Vector またはそのコンテンツを変更しても TextBlock には影響しません。



実装
    public function get tabStops():Vector.<TabStop>
    public function set tabStops(value:Vector.<TabStop>):void

例外
ArgumentError — 指定された tabStopsnull エレメントが含まれています。
 
ArgumentError — 指定された tabStops は、位置が大きくなる順にソートされません。

関連項目

textJustifierプロパティ 
textJustifier:TextJustifier

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

行の作成時に使用する TextJustifier を指定します。

デフォルト値は、作成されるデフォルトの TextJustifier オブジェクトです。

textJustifier プロパティが設定されているときは、TextBlock によって内部使用のためにオブジェクトのコピーが作成されます。元のオブジェクトを変更しても TextBlock には影響しません。textJustifier プロパティを照会すると、内部オブジェクトのコピーが返されます。この返されたオブジェクトを変更しても TextBlock には影響しません。



実装
    public function get textJustifier():TextJustifier
    public function set textJustifier(value:TextJustifier):void

例外
ArgumentError TextJustifier の既知のサブクラスではない値に設定する場合。

関連項目

textLineCreationResultプロパティ 
textLineCreationResult:String  [読み取り専用]

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

createTextLine() 操作の結果を示します。ブロックの内容が変更されると、以前に改行された行が無効化され、このプロパティが null にリセットされます。

デフォルト値は null です。

このプロパティの値は、TextLineCreationResult 内に含まれます。

ストリング値説明
TextLineCreationResult.SUCCESS行が正常に改行されました。
TextLineCreationResult.COMPLETE作成された新しい行が継続行に完全に整列しており、POSSIBLY_INVALID から VALID に変更されたかまたはブロック内のすべてのテキストが既に改行されていたので、行は作成されませんでした。
TextLineCreationResult.INSUFFICIENT_WIDTHテキストが指定された幅に収まらないので、行は作成されませんでした。



実装
    public function get textLineCreationResult():String

関連項目

userDataプロパティ 
public var userData:*

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

作成者が任意のデータをテキストブロックに関連付けるための方法を提供します。データは改訂日付や作者名などのコンテンツを指す情報の場合もあれば、処理中に使用するキャッシュされたデータの場合もあります。

コンストラクタの詳細
TextBlock()コンストラクタ
public function TextBlock(content:ContentElement = null, tabStops:Vector.<TabStop> = null, textJustifier:TextJustifier = null, lineRotation:String = "rotate0", baselineZero:String = "roman", bidiLevel:int = 0, applyNonLinearFontScaling:Boolean = true, baselineFontDescription:FontDescription = null, baselineFontSize:Number = 12.0)

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

TextBlock オブジェクトを作成します。

パラメータ
content:ContentElement (default = null) — テキストブロックの内容です。
 
tabStops:Vector.<TabStop> (default = null) — テキストブロック内のテキストのタブストップです。
 
textJustifier:TextJustifier (default = null) — このブロックの行作成時に使用される TextJustifier オブジェクトです。位置揃えを指定しない場合は、英語ロケールに基づいてデフォルトの位置揃えが作成されます。
 
lineRotation:String (default = "rotate0") — テキストブロックを単位として生成されるテキスト行に適用する回転です。
 
baselineZero:String (default = "roman") — ブロック内のすべての行に対して y=0 であるベースラインを指定します。
 
bidiLevel:int (default = 0) — テキストブロック内のテキストのデフォルトの双方向埋め込みレベルです。
 
applyNonLinearFontScaling:Boolean (default = true) — WYSIWYG 印刷の再現性を犠牲にして、画面の外観を強調するように指定します。
 
baselineFontDescription:FontDescription (default = null) — ブロック内のすべての行に対して、行のベースラインの派生元にするフォントの説明を指定します。
 
baselineFontSize:Number (default = 12.0) — baselineFontDescription に使用するサイズを指定します。このパラメータは、baselineFontDescriptionnull の場合は無視されます。

例外
ArgumentError — 指定された content は、ContentElement の既知のサブクラスではありません。
 
ArgumentError — 指定された content は、既にグループのメンバーです。
 
ArgumentError — 指定された lineRotation は、TextRotation のメンバーではありません。
 
ArgumentError — 指定された baselineZero は、TextBaseline のメンバーではありません。
 
ArgumentError — 指定された bidiLevel は、0 未満です。
 
ArgumentError — 指定された tabStopsnull エレメントが含まれています。
 
ArgumentError — 指定された tabStops は、位置が大きくなる順にソートされません。
 
ArgumentError — 指定された baselineFontSize は、0 未満です。

関連項目

メソッドの詳細
createTextLine()メソッド
public function createTextLine(previousLine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):TextLine

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

テキストブロックの内容からテキスト行を作成し、その場合に previousLine パラメータで指定されたポイントで開始し、width パラメータで指定されたポイントで改行するように指示します。テキスト行は TextLine オブジェクトで表され、表示リストに追加できます。

既に改行されているテキストブロックの範囲を越えて行を改行すると、改行が発生する領域の内外で行の有効性が変更されることがあります。行のステータスが、VALID から INVALID または POSSIBLY_INVALID に変更されることがあります。新しく改行された行が、ステータスが POSSIBLY_INVALID の前回改行された行に完全に整列している場合、前回改行された行およびそれ以降のすべての POSSIBLY_INVALID の行のステータスが VALID に戻ります。TextLineValidity のメンバーではない値に設定された行の有効性は、VALID には変更されませんが、INVALID には変更されることがあります。テキストブロックに対する変更の後は、再改行するテキスト行を開始または継続する位置を firstInvalidLine プロパティで確認します。

テキストに Unicode Zero Width Space(ZWSP)文字を含めることによって、人為的な単語分割を作成できます。これは、正しく改行するために辞書が必要になるタイ語などの言語の場合に便利です。Flash Player は、このような辞書を含んでいません。

パラメータ

previousLine:TextLine (default = null) — 直前に改行された行を指定します。この行の次から改行処理を開始します。1 行目を改行する場合は null を指定します。
 
width:Number (default = 1000000) — 線幅をピクセル単位で指定します。実際の幅はより小さくなることがあります。
 
lineOffset:Number (default = 0.0) — 行の起点とタブストップの起点の差をピクセルで指定するオプションのパラメータです。行は整列していないが、タブを整列させる必要がある場合に使用できます。このパラメータのデフォルト値は 0.0 です。
 
fitSomething:Boolean (default = false) — 指定された幅には関係なく(例外がスローされる場合もある幅が 0 または負の場合でも)、1 文字以上をテキスト行に収めるように Flash Player に指示するオプションのパラメータです。

戻り値
TextLine — テキスト行。テキストブロックが空か、指定された幅が次のエレメントの幅より小さい場合は null。これらのいずれの場合かを識別するには、テキストブロックの textLineCreationResult プロパティをチェックします。

例外
ArgumentError previousLine で指定された TextLine が有効でない場合。
 
ArgumentError width が 0 未満の場合(fitSomething が true の場合を除く)。
 
ArgumentError widthTextLine.MAX_LINE_WIDTH より大きい場合。
 
IllegalOperationError — テキストブロックの 1 つ以上のエレメントに null ElementFormat がある場合。

関連項目




この例では、createTextLine() メソッドを呼び出して、テキストブロック内にテキスト行を作成します。以下の手順を実行して行います。
  • String から TextElement を作成し、フォントサイズ 20 を設定します。
  • TextBlock を作成し、このオブジェクトに TextElement を割り当てます。
  • createTextLine() を呼び出して、テキストブロックから 300 ピクセルの幅を持つ行を作成します。
  • 各行を Stage(addChild())に配置し、その位置(x および y)を設定します。

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;
    
    public class TextBlock_createTextLineExample extends Sprite {
        
        public function TextBlock_createTextLineExample():void {
            
            var str:String = "I am a TextElement, created from a String and assigned " +
            "to the content property of a TextBlock. The createTextLine() method " +
            "then created these lines, 300 pixels wide, for display." ;
            
            var fontDescription:FontDescription = new FontDescription("Arial");
            var format:ElementFormat = new ElementFormat(fontDescription);
            format.fontSize = 16;
            var textElement:TextElement = new TextElement(str, format); 
            var textBlock:TextBlock = new TextBlock();
            textBlock.content = textElement; 
            createLines(textBlock); 
        }
        
        private function createLines(textBlock:TextBlock):void 
        {            
            var lineWidth:Number = 300;
            var xPos:Number = 15.0;
            var yPos:Number = 20.0;
            
            var textLine:TextLine = textBlock.createTextLine (null, lineWidth);
            while (textLine)
            {
                textLine.x = xPos;
                textLine.y = yPos;
                yPos += textLine.height + 2;
                addChild (textLine);
                textLine = textBlock.createTextLine (textLine, lineWidth);
            }
        }
    }
}
dump()メソッド 
public function dump():String

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

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

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

次の表で出力について説明します。

タグ属性説明
<block> TextBlock
<line TextLine
 s=インライン実行エレメントの開始
 l=インライン実行エレメントの制限
> line タグの終了
<run 行のエレメント
 s=インライン実行エレメントの開始
 l=インライン実行エレメントの制限
> run タグの終了
<inter inter エレメント
 cursor=文字カーソル(元のテキストへのインデックス)
 tcb=タイポグラフィッククラスタ境界
 wb=単語境界
 lbo=改行の条件
 lb=実際の改行
/> inter タグの終了
<char 文字エレメント
 usv=Unicode のスカラ値
/> char タグの終了
<glyph 計算された文字または形成された文字のエレメント
 font=フォント名
 gid=文字インデックス
 xa=xAdvance
 ya=yAdvance
 xp=xPlacement
 yp=yPlacement
 r=回転
 color=
 xP=xPosition
 yP=yPosition
 attached=2 つのエレメントがアタッチされているかどうか
 itcbo=内部タイポグラフィッククラスタ境界のオフセット
 bl=双方向レベル
 sc=spacing クラス
/> glyph タグの終了
<fo グラフィックエレメント
 id=エレメント ID
 xa=xAdvance
 ya=yAdvance
 xp=xPlacement
 yp=yPlacement
 r=回転
 color=
 xP=xPosition
 yP=yPosition
 lb=左揃え
 rb=右揃え
 tb=上揃え
 bb=下揃え
 itcbo=内部タイポグラフィッククラスタ境界のオフセット
 bl=双方向レベル
 sc=spacing クラス
/> fo タグの終了
<embeddedRun 埋め込み範囲
 xa=xAdvance
 ya=yAdvance
 xp=xPlacement
 yp=yPlacement
 r=回転
 xP=xPosition
 yP=yPosition
> embeddedRun タグの終了
<run> 実行
</run> run タグの終了
</embeddedRun> embeddedRun タグの終了
<carets 行のキャレット
 s=インライン実行エレメントの開始
 l=インライン実行エレメントの制限
> carets タグの終了
<cursor> カーソル
 x=左側の x 位置
/> cursor タグの終了
<cluster クラスタ
 c=中央位置
 s=tc オフセットの開始
 l=tc オフセットの制限
 bidi双方向レベル
/> cluster タグの終了
</carets> carets タグの終了
</line> line タグの終了
</block> block タグの終了

戻り値
String

関連項目

findNextAtomBoundary()メソッド 
public function findNextAtomBoundary(afterCharIndex:int):int

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

指定された文字インデックスの次のアトム境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。アトム境界間の文字は結合されて、「e」と結合されるアキュートアクセントのように、TextLine で 1 つのアトムを形成します。

パラメータ

afterCharIndex:int — 次のアトム境界の検索を開始する文字のインデックスを指定します。

戻り値
int — 指定された文字インデックスの次のアトム境界のインデックスです。

例外
RangeError — 指定された index は範囲外です。
 
IllegalOperationError — このインデックス位置の文字が含まれる TextLine は無効です。

関連項目

findNextWordBoundary()メソッド 
public function findNextWordBoundary(afterCharIndex:int):int

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

指定された文字インデックスの次の単語境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。単語境界は、文字の Unicode プロパティに基づいて決定されます。

パラメータ

afterCharIndex:int — 次の単語境界の検索を開始する文字のインデックスを指定します。

戻り値
int — 指定された文字インデックスの次の単語境界のインデックスです。

例外
RangeError — 指定された index は範囲外です。
 
IllegalOperationError — このインデックス位置の文字が含まれる TextLine は無効です。
findPreviousAtomBoundary()メソッド 
public function findPreviousAtomBoundary(beforeCharIndex:int):int

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

指定された文字インデックスの前のアトム境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。アトム境界間の文字は結合されて、「e」と結合されるアキュートアクセントのように、TextLine で 1 つのアトムを形成します。

パラメータ

beforeCharIndex:int — 前のアトム境界の検索を開始する文字のインデックスを指定します。

戻り値
int — 指定された文字インデックスの前のアトム境界のインデックスです。

例外
RangeError — 指定された index は範囲外です。
 
IllegalOperationError — このインデックス位置の文字が含まれる TextLine は無効です。

関連項目

findPreviousWordBoundary()メソッド 
public function findPreviousWordBoundary(beforeCharIndex:int):int

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

指定された文字インデックスの前の単語境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。単語境界は、文字の Unicode プロパティに基づいて決定されます。

パラメータ

beforeCharIndex:int — 前の単語境界の検索を開始する文字のインデックスを指定します。

戻り値
int — 指定された文字インデックスの前の単語境界のインデックスです。

例外
RangeError — 指定された index は範囲外です。
 
IllegalOperationError — このインデックス位置の文字が含まれる TextLine は無効です。
getTextLineAtCharIndex()メソッド 
public function getTextLineAtCharIndex(charIndex:int):TextLine

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

charIndex パラメータで指定された位置の文字を含む TextLine を返します。

パラメータ

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

戻り値
TextLinecharIndex で指定された位置の文字を含む TextLine です。

例外
RangeError — 指定された文字インデックスは範囲外です。
releaseLines()メソッド 
public function releaseLines(firstLine:TextLine, lastLine:TextLine):void

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

TextBlock によって維持される行のリストから、テキスト行の範囲を削除します。これにより、他の参照が存在しない場合、行がガベージコレクションされます。

削除された行の textBlocknextLine および previousLine メンバーを null に設定します。TextBlock の削除された行および削除された行の後のすべての行の validityTextLineValidity.INVALID に設定します。

パラメータ

firstLine:TextLine — リリースされる最初の行を指定します。
 
lastLine:TextLine — リリースされる最後の行を指定します。


例外
ArgumentError firstLine または lastLine によって指定される TextLine が、テキストブロックによって維持されるテキスト行のリストにない場合。

関連項目

例の使用法
TextBlockExample.as

この例は、日本語および英語テキスト中の 3 つの TextBlock 段落です。日本語テキストは、Unicode 文字コードから String に変換されます。ボタンをクリックすると、テキストが水平から垂直へ、または垂直から水平へと回転します。
  1. Button をライブラリに追加します。
  2. このコードを FLA と同じディレクトリに TextBlockExample.as という名前で保存します。
  3. FLA のプロパティパネルでクラスを TextBlockExample に設定します。
package { 
    import fl.controls.Button;
     import flash.text.engine.TextBlock;
    import flash.text.engine.TextLine;
    import flash.text.engine.TextElement;
    import flash.text.engine.ElementFormat;
    import flash.text.engine.TextRotation;
    import flash.text.engine.TextBaseline;
    import flash.text.engine.LineJustification;
    import flash.text.engine.FontDescription;
    import flash.text.engine.EastAsianJustifier; 
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.MouseEvent;
    import flash.system.Capabilities;
    
    public class TextBlockExample extends Sprite {
        
        var vertical:Boolean;    
        var container:Sprite;
        var textBlocks:Vector.<TextBlock>;
        var loader:Loader = new Loader();
        var directionButton:Button = new Button();
        
        public function TextBlockExample():void {
            addChild(directionButton);
            directionButton.width = 30;
            directionButton.move(50, 350);
            directionButton.addEventListener(MouseEvent.CLICK, clickHandler);
            createContent();
            createLines();
        }

        private function createEmptyBlock():TextBlock {
        
            var textBlock:TextBlock = new TextBlock();
            textBlock.baselineZero = TextBaseline.IDEOGRAPHIC_CENTER;
            textBlock.textJustifier = new EastAsianJustifier("ja", LineJustification.ALL_BUT_LAST);
            textBlock.lineRotation = vertical? TextRotation.ROTATE_90: TextRotation.ROTATE_0;
            return textBlock;    
        }
        
        private function paragraph1(format:ElementFormat):TextBlock {
        
            var textBlock:TextBlock = createEmptyBlock();
            textBlock.content = new TextElement(
            String.fromCharCode(
                0x5185, 0x95A3, 0x5E9C, 0x304C, 0x300C, 0x653F, 0x5E9C, 0x30A4,
                0x30F3, 0x30BF, 0x30FC, 0x30CD, 0x30C3, 0x30C8, 0x30C6, 0x30EC, 
                0x30D3, 0x300D, 0x306E, 0x52D5, 0x753B, 0x914D, 0x4FE1, 0x5411, 
                0x3051, 0x306B, 0x30A2, 0x30C9, 0x30D3, 0x30B7, 0x30B9, 0x30C6, 
                0x30E0, 0x30BA, 0x793E, 0x306E
            ) +
            "FMS 2" +
            String.fromCharCode(0x3092, 0x63A1, 0x7528, 0x3059, 0x308B, 0x3068, 
                0x767a, 0x8868, 0x3057, 0x307e, 0x3057, 0x305F, 0x3002), format);
            return textBlock;
        }

        private function paragraph2(format:ElementFormat):TextBlock {
            
            var textBlock:TextBlock = createEmptyBlock();
            textBlock.content = new TextElement(
            String.fromCharCode(
                0x30AF, 0x30ED, 0x30B9, 0x30D7, 0x30E9, 0x30C3, 0x30C8, 0x30D5, 
                0x30A9, 0x30FC, 0x30E0, 0x4E0A, 0x3067, 0x518D, 0x751F, 0x53EF, 
                0x80FD, 0x306A
            ) + 
            "Flash Video" +
            String.fromCharCode(
                0x3092, 0x914D, 0x4FE1, 0x3001, 0x653F, 0x5E9C, 0x6700, 0x65B0, 
                0x60C5, 0x5831, 0x3092, 0x3088, 0x308A, 0x591A, 0x304F, 0x306E, 
                0x56FD, 0x6C11, 0x306B, 0x9AD8, 0x54C1, 0x8CEA, 0x306A, 0x753B, 
                0x50CF, 0x3067, 0x7C21, 0x5358, 0x304B, 0x3064, 0x30EA, 0x30A2, 
                0x30EB, 0x30BF, 0x30A4, 0x30E0, 0x306B, 0x63D0, 0x4F9B, 0x3059, 
                0x308B, 0x3053, 0x3068, 0x304C, 0x53EF, 0x80FD, 0x306B, 0x306A, 
                0x308A, 0x307e, 0x3057, 0x305F, 0x3002), format);
            return textBlock;    
        }

        private function paragraph3(format:ElementFormat):TextBlock {
            
            var textBlock:TextBlock = createEmptyBlock();
            textBlock.content = new TextElement(
            String.fromCharCode(0x3010) +
            "2007" +
            String.fromCharCode(0x5E74) + "2" + String.fromCharCode(0x6708) +
            "21" +
            String.fromCharCode(0x65E5, 0x3011),
            format);
            return textBlock;    
        }

        private function createContent():void {
            
            var font:FontDescription = new FontDescription();
            if (Capabilities.os.search("Mac OS") > -1) 
                font.fontName = String.fromCharCode(0x5C0F, 0x585A, 0x660E, 0x671D) + " Pro R"; // "Kozuka Mincho Pro R"                    koFont.fontName = "Adobe " + String.fromCharCode(0xBA85, 0xC870) + " Std M"; // "Adobe Myungjo Std M"
            else 
                font.fontName = "Kozuka Mincho Pro R";        
            var format:ElementFormat = new ElementFormat();
            format.fontDescription = font;
            format.fontSize = 12;
            format.locale = "ja";
            format.color = 0x000000;
            if (!vertical) 
                format.textRotation = TextRotation.ROTATE_0; 
            textBlocks = new Vector.<TextBlock>();
            textBlocks.push(
                paragraph1(format),
                paragraph2(format),
                paragraph3(format)//,
            );
        }

        private function createLines():void {    
        
            if (container != null) {
                removeChild(container);
            }            
            container = new Sprite();
            container.y = 45;
            container.x = 40;
            addChild(container);
            var linePosition:Number = vertical? this.stage.stageWidth - 120: 12;
        
            for (var i:uint = 0; i < textBlocks.length; i++) {
                var textBlock:TextBlock = textBlocks[i];
                var previousLine:TextLine = null;
        
                while (true) {
                    var textLine:TextLine = textBlock.createTextLine(
                        previousLine, 
                        300);
                    if (textLine == null) 
                        break;
                    if (vertical) 
                    {
                        textLine.x = linePosition;
                        linePosition -= 24;
                        directionButton.label = " -- ";
                    }
                    else 
                    {
                        textLine.y = linePosition+50;
                        linePosition += 24;
                        directionButton.label = " | ";
                    }
                    container.addChild(textLine);                
                    previousLine = textLine;
                }
                if (vertical) 
                    linePosition -= 16;
                else 
                    linePosition += 16; 
            }
        }

        private function clickHandler(event:MouseEvent):void {
            
            vertical = !vertical;
            createContent();
            createLines();
        }
    }
}




 

 

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

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