パッケージ | flash.text.engine |
クラス | public final class TextBlock |
継承 | TextBlock Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Unicode 双方向アルゴリズムおよび改行アルゴリズムは一度に 1 つの段落に対して実行されるので、TextBlock クラスは単一の段落が含まれることを想定しています。複数の段落でテキストを構成するアプリケーションは、テキストを段落に分割し、段落ごとに 1 つの TextBlock を作成するために、マークアップ言語またはテキスト解析を使用します。
TextBlock オブジェクトは、ContentElement クラスのインスタンスである content
プロパティにそのコンテンツを格納します。ContentElement クラスのインスタンスを作成することはできないため、content
をそのサブクラスである TextElement、GraphicElement または GroupElement のいずれかのインスタンスに設定します。純粋なテキストコンテンツには TextElement、イメージコンテンツまたはグラフィックコンテンツには GraphicElement、TextElement オブジェクト、GraphicElement オブジェクトおよびその他の GroupElement オブジェクトの組み合わせを含むコンテンツには GroupElement を使用します。フォーマットされたテキスト範囲、埋め込みのサブテキストおよびグラフィックエレメントの管理について詳しくは、ContentElement クラスおよびそのサブクラスを参照してください。
TextBlock インスタンスを作成して content
プロパティを設定した後、createTextLine()
メソッドを呼び出して TextLine
クラスのインスタンスのテキスト行を作成します。
関連する API エレメント
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 | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
content : ContentElement
テキストブロックの内容を保持します。 | TextBlock | ||
firstInvalidLine : flash.text.engine:TextLine [読み取り専用]
TextLine.validity と TextLineValidity.VALID が等しくないテキストブロックで最初の行を指定します。 | TextBlock | ||
firstLine : flash.text.engine:TextLine [読み取り専用]
TextBlock 内の最初の TextLine(存在する場合)です。 | TextBlock | ||
lastLine : flash.text.engine:TextLine [読み取り専用]
TextBlock 内の最後の TextLine(存在する場合)です。 | TextBlock | ||
lineRotation : String
テキストブロックのテキスト行を単位として回転します。 | TextBlock | ||
tabStops : Vector.<flash.text.engine:TabStop>
テキストブロック内のテキストのタブストップを TabStop オブジェクトの Vector の形式で指定します。 | TextBlock | ||
textJustifier : flash.text.engine:TextJustifier
行の作成時に使用する TextJustifier を指定します。 | TextBlock | ||
textLineCreationResult : String [読み取り専用]
createTextLine() 操作の結果を示します。 | TextBlock | ||
userData : *
アプリケーションが任意のデータをテキストブロックに関連付けるための方法を提供します。 | TextBlock |
メソッド | 定義元 | ||
---|---|---|---|
TextBlock(content:ContentElement = null, tabStops:Vector.<flash.text.engine:TabStop> = null, textJustifier:flash.text.engine: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:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
テキストブロックの内容からテキスト行を作成し、その場合に previousLine パラメーターで指定されたポイントで開始し、width パラメーターで指定されたポイントで改行するように指示します。 | TextBlock | ||
TextBlock の基になるコンテンツを XML ストリングとしてダンプします。 | TextBlock | ||
指定された文字インデックスの次のアトム境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。 | TextBlock | ||
指定された文字インデックスの次の単語境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。 | TextBlock | ||
指定された文字インデックスの前のアトム境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。 | TextBlock | ||
指定された文字インデックスの前の単語境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。 | TextBlock | ||
charIndex パラメーターで指定された位置の文字を含む TextLine を返します。 | TextBlock | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
recreateTextLine(textLine:flash.text.engine:TextLine, previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
既存のテキスト行を再利用するテキストブロックの内容からテキスト行を作成します。その際、previousLine パラメーターで指定されたポイントで開始し、width パラメーターで指定されたポイントで改行するように指示します。 | TextBlock | ||
テキストブロックに、テキスト行の作成に関連する一時ファイルのデータをすべて解放するように指示します。 | TextBlock | ||
TextBlock によって維持される行のリストから、テキスト行の範囲を削除します。 | TextBlock | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
applyNonLinearFontScaling | プロパティ |
applyNonLinearFontScaling:Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
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, Flash Lite 4 |
行の内容には関係なく、ブロックから作成されたすべての行に対するベースラインを特定するために使用されるフォントです。ベースラインは、フォントおよびフォントサイズによって異なります。
デフォルト値は null
です。ベースラインフォントが null
の場合、ベースラインフォントのサイズは無視され、いずれの行に対するベースラインも、行内の最大のテキストのフォントおよびサイズによって決まります。baselineFontDescription
および baselineFontSize
の両方を指定すると、それらの内容に関係なく、テキストブロックのすべての行に対するベースラインを決定します。この組み合わせは、文字体裁で最も役立ちます。
実装
public function get baselineFontDescription():FontDescription
public function set baselineFontDescription(value:FontDescription):void
関連する API エレメント
baselineFontSize | プロパティ |
baselineFontSize:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
ブロックから作成された行に対するベースラインを計算するのに使用されるフォントサイズです。ベースラインは、フォントおよびフォントサイズによって異なります。
デフォルト値は 12
です。ベースラインフォントが null
の場合、ベースラインフォントのサイズは無視され、いずれの行に対するベースラインも、行内の最大のテキストのフォントおよびサイズによって決まります。
実装
public function get baselineFontSize():Number
public function set baselineFontSize(value:Number):void
例外
ArgumentError — 指定された baselineFontSize が、0 未満です。
|
関連する API エレメント
baselineZero | プロパティ |
baselineZero:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
このブロックから作成した行に対して 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 のメンバーではないいずれかの値に設定する場合。
|
関連する API エレメント
bidiLevel | プロパティ |
bidiLevel:int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
テキストブロックの双方向段落の埋め込みレベルを指定します。通常、LTR 段落(英語、日本語など)の場合は 0 を、RTL 段落(アラビア語、ヘブライ語など)の場合は 1 を使用します。0 と 1 以外の値は、特殊な場合のために予約されています。詳しくは、UAX#9『Unicode Bidirectional Algorithm』(http://www.unicode.org/reports/tr9/)を参照してください。
デフォルト値は 0 です。
bidiLevel
を変更すると、すべての前の改行の有効性が TextLineValidity.INVALID に変わります。bidiLevel
の変更後、firstInvalidLine
プロパティは firstLine
プロパティに等しくなるため、TextBlock のすべての行を再度改行する必要があります。
実装
public function get bidiLevel():int
public function set bidiLevel(value:int):void
例外
ArgumentError — 0 未満の値に設定する場合。
|
関連する API エレメント
例 ( この例の使用方法 )
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, Flash Lite 4 |
テキストブロックの内容を保持します。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 は、既にグループのメンバーです。
|
関連する API エレメント
firstInvalidLine | プロパティ |
firstInvalidLine:flash.text.engine:TextLine
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
TextLine.validity
と TextLineValidity.VALID
が等しくないテキストブロックで最初の行を指定します。
デフォルト値は null
です。
実装
public function get firstInvalidLine():flash.text.engine:TextLine
関連する API エレメント
firstLine | プロパティ |
firstLine:flash.text.engine:TextLine
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
TextBlock 内の最初の TextLine(存在する場合)です。
デフォルト値は null
です。
実装
public function get firstLine():flash.text.engine:TextLine
関連する API エレメント
lastLine | プロパティ |
lastLine:flash.text.engine:TextLine
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
TextBlock 内の最後の TextLine(存在する場合)です。
デフォルト値は null
です。
実装
public function get lastLine():flash.text.engine:TextLine
関連する API エレメント
lineRotation | プロパティ |
lineRotation:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
テキストブロックのテキスト行を単位として回転します。有効にするには createTextLine()
メソッドは lineRotation
を設定してから呼び出します。デフォルト値は、TextRotation.ROTATE_0
です。
文字の最終的な回転は、ElementFormat.textRotation
、ContentElement.textRotation
および TextBlock.lineRotation
の値によって異なります。
TextBlock.lineRotation
は一般に、日中韓のテキストで使用されます。縦書きの日本語テキストの段落を作成するには、次の処理を行います。
TextBlock.lineRotation
プロパティをTextRotation.ROTATE_90
に設定します。- コンテンツの
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 に設定する場合。
|
関連する API エレメント
例 ( この例の使用方法 )
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.<flash.text.engine:TabStop>
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
テキストブロック内のテキストのタブストップを TabStop
オブジェクトの Vector の形式で指定します。
デフォルト値は null
です。これは、タブストップが指定されていないことを意味します。タブストップが指定されていない場合(または最後に指定されたタブストップを挿入ポイントが超えている場合)、ランタイムはデフォルトで 1/2 インチのタブを作成します。
tabStops
プロパティが設定されているときは、TextBlock によって内部使用のために Vector のコピーが作成されます。元の Vector またはそのコンテンツを変更しても TextBlock には影響しません。tabStops
プロパティを照会すると、内部 Vector のコピーが返されます。この返された Vector またはそのコンテンツを変更しても TextBlock には影響しません。
実装
public function get tabStops():Vector.<flash.text.engine:TabStop>
public function set tabStops(value:Vector.<flash.text.engine:TabStop>):void
例外
ArgumentError — 指定された tabStops に null エレメントが含まれています。
| |
ArgumentError — 指定された tabStops は、位置が大きくなる順にソートされません。
|
関連する API エレメント
textJustifier | プロパティ |
textJustifier:flash.text.engine:TextJustifier
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
行の作成時に使用する TextJustifier を指定します。
デフォルト値は、作成されるデフォルトの TextJustifier オブジェクトです。
textJustifier
プロパティが設定されているときは、TextBlock によって内部使用のためにオブジェクトのコピーが作成されます。元のオブジェクトを変更しても TextBlock には影響しません。textJustifier
プロパティを照会すると、内部オブジェクトのコピーが返されます。この返されたオブジェクトを変更しても TextBlock には影響しません。
実装
public function get textJustifier():flash.text.engine:TextJustifier
public function set textJustifier(value:flash.text.engine:TextJustifier):void
例外
ArgumentError — TextJustifier の既知のサブクラスではない値に設定する場合。
|
関連する API エレメント
textLineCreationResult | プロパティ |
textLineCreationResult:String
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
createTextLine()
操作の結果を示します。ブロックの内容が変更されると、以前に改行された行が無効化され、このプロパティが null
にリセットされます。
デフォルト値は null
です。
このプロパティの値は、TextLineCreationResult
内に含まれます。
ストリング値 | 説明 |
---|---|
TextLineCreationResult.SUCCESS | 行が正常に改行されました。 |
TextLineCreationResult.COMPLETE | 作成された新しい行が継続行に完全に揃っており、POSSIBLY_INVALID から VALID に変更されたかまたはブロック内のすべてのテキストが既に改行されていたので、行は作成されませんでした。 |
TextLineCreationResult.INSUFFICIENT_WIDTH | テキストが指定された幅に収まらないので、行は作成されませんでした。 |
実装
public function get textLineCreationResult():String
関連する API エレメント
userData | プロパティ |
public var userData:*
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
アプリケーションが任意のデータをテキストブロックに関連付けるための方法を提供します。データは改訂日付や作者名などのコンテンツを指す情報の場合もあれば、処理中に使用するキャッシュされたデータの場合もあります。
TextBlock | () | コンストラクター |
public function TextBlock(content:ContentElement = null, tabStops:Vector.<flash.text.engine:TabStop> = null, textJustifier:flash.text.engine: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, Flash Lite 4 |
TextBlock オブジェクトを作成します。
パラメーターcontent:ContentElement (default = null ) — テキストブロックの内容です。
| |
tabStops:Vector.<flash.text.engine:TabStop> (default = null ) — テキストブロック内のテキストのタブストップです。
| |
textJustifier:flash.text.engine: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 に使用するサイズを指定します。このパラメーターは、baselineFontDescription が null の場合は無視されます。
|
例外
ArgumentError — 指定された content は、ContentElement の既知のサブクラスではありません。
| |
ArgumentError — 指定された content は、既にグループのメンバーです。
| |
ArgumentError — 指定された lineRotation は、TextRotation のメンバーではありません。
| |
ArgumentError — 指定された baselineZero は、TextBaseline のメンバーではありません。
| |
ArgumentError — 指定された bidiLevel は、0 未満です。
| |
ArgumentError — 指定された tabStops に null エレメントが含まれています。
| |
ArgumentError — 指定された tabStops は、位置が大きくなる順にソートされません。
| |
ArgumentError — 指定された baselineFontSize が、0 未満です。
|
関連する API エレメント
createTextLine | () | メソッド |
public function createTextLine(previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
テキストブロックの内容からテキスト行を作成し、その場合に previousLine
パラメーターで指定されたポイントで開始し、width
パラメーターで指定されたポイントで改行するように指示します。テキスト行は TextLine オブジェクトで表され、表示リストに追加できます。
既に改行されているテキストブロックの範囲を越えて行を改行すると、改行が発生する領域の内外で行の有効性が変更されることがあります。行のステータスが、VALID から INVALID または POSSIBLY_INVALID に変更されることがあります。新しく改行された行が、ステータスが POSSIBLY_INVALID の前回改行された行に完全に揃っている場合、前回改行された行およびそれ以降のすべての POSSIBLY_INVALID の行のステータスが VALID に戻ります。TextLineValidity
のメンバーではない値に設定された行の有効性は、VALID には変更されませんが、INVALID には変更されることがあります。テキストブロックに対する変更の後は、再改行するテキスト行を開始または継続する位置を firstInvalidLine
プロパティで確認します。
テキストに Unicode Zero Width Space(ZWSP)文字を含めることによって、人為的な単語分割を作成できます。これは、正しく改行するために辞書が必要になるタイ語などの言語の場合に便利です。Flash ランタイムは、このような辞書を含んでいません。
メモリのオーバーヘッドを削減する方法として、目的の行がすべて作成済みの場合、親のフレームのリサイズなどでその度に再改行が必要になることがない限り、ユーザーは releaseLineCreationData()
メソッドを呼び出して、改行に関連する一時データからテキストブロックを解放することができます。
パラメーター
previousLine:flash.text.engine:TextLine (default = null ) — 直前に改行された行を指定します。この行の次から改行処理を開始します。1 行目を改行する場合は null を指定します。
| |
width:Number (default = 1000000 ) — 線幅をピクセル単位で指定します。実際の幅はより小さくなることがあります。
| |
lineOffset:Number (default = 0.0 ) — 行の起点とタブストップの起点の差をピクセルで指定するオプションのパラメーターです。行揃えしていないが、タブを整列させる必要がある場合に使用できます。このパラメーターのデフォルト値は 0.0 です。
| |
fitSomething:Boolean (default = false ) — 指定された幅には関係なく(例外がスローされる場合もある幅が 0 または負の場合でも)、1 文字以上をテキスト行に収めるように Flash Player に指示するオプションのパラメーターです。
|
flash.text.engine:TextLine — テキスト行。テキストブロックが空か、指定された幅が次のエレメントの幅より小さい場合は null 。これらのいずれの場合かを識別するには、テキストブロックの textLineCreationResult プロパティをチェックします。
|
例外
ArgumentError — previousLine で指定された TextLine が有効でない場合。
| |
ArgumentError — previousLine で指定された TextLine が別の TextBlock に所有されている場合。
| |
ArgumentError — width が 0 未満の場合(fitSomething が true の場合を除く)。
| |
ArgumentError — width が TextLine.MAX_LINE_WIDTH より大きい場合。
| |
IllegalOperationError — テキストブロックの 1 つ以上のエレメントに null ElementFormat がある場合。
|
関連する API エレメント
例 ( この例の使用方法 )
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 ストリングとしてダンプします。これにはテキスト、書式およびレイアウト情報が含まれており、自動化されたテストで役立ちます。
次に出力について説明します。
>block< [0-N LINE] >/block<
各行の出力の説明については、TextLine.dump() メソッドを参照してください。
注意:コンテンツおよび出力のフォーマットは、今後変更される可能性があります。アドビ システムズ社は、このメソッドの後方互換性は保証しません。
戻り値String |
関連する API エレメント
findNextAtomBoundary | () | メソッド |
public function findNextAtomBoundary(afterCharIndex:int):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定された文字インデックスの次のアトム境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。アトム境界間の文字は結合されて、「e」と結合されるアキュートアクセントのように、TextLine
で 1 つのアトムを形成します。
パラメーター
afterCharIndex:int — 次のアトム境界の検索を開始する文字のインデックスを指定します。
|
int — 指定された文字インデックスの次のアトム境界のインデックスです。
|
例外
RangeError — 指定された index は範囲外です。
| |
IllegalOperationError — このインデックス位置の文字が含まれる TextLine は無効です。
|
関連する API エレメント
findNextWordBoundary | () | メソッド |
public function findNextWordBoundary(afterCharIndex:int):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定された文字インデックスの次の単語境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。単語境界は、文字の Unicode プロパティに基づいて決定されます。
パラメーター
afterCharIndex:int — 次の単語境界の検索を開始する文字のインデックスを指定します。
|
int — 指定された文字インデックスの次の単語境界のインデックスです。
|
例外
RangeError — 指定された index は範囲外です。
| |
IllegalOperationError — このインデックス位置の文字が含まれる TextLine は無効です。
|
findPreviousAtomBoundary | () | メソッド |
public function findPreviousAtomBoundary(beforeCharIndex:int):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定された文字インデックスの前のアトム境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。アトム境界間の文字は結合されて、「e」と結合されるアキュートアクセントのように、TextLine
で 1 つのアトムを形成します。
パラメーター
beforeCharIndex:int — 前のアトム境界の検索を開始する文字のインデックスを指定します。
|
int — 指定された文字インデックスの前のアトム境界のインデックスです。
|
例外
RangeError — 指定された index は範囲外です。
| |
IllegalOperationError — このインデックス位置の文字が含まれる TextLine は無効です。
|
関連する API エレメント
findPreviousWordBoundary | () | メソッド |
public function findPreviousWordBoundary(beforeCharIndex:int):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
指定された文字インデックスの前の単語境界のインデックスを検索します。指定されたインデックス位置の文字は含めません。単語境界は、文字の Unicode プロパティに基づいて決定されます。
パラメーター
beforeCharIndex:int — 前の単語境界の検索を開始する文字のインデックスを指定します。
|
int — 指定された文字インデックスの前の単語境界のインデックスです。
|
例外
RangeError — 指定された index は範囲外です。
| |
IllegalOperationError — このインデックス位置の文字が含まれる TextLine は無効です。
|
getTextLineAtCharIndex | () | メソッド |
public function getTextLineAtCharIndex(charIndex:int):flash.text.engine:TextLine
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
charIndex
パラメーターで指定された位置の文字を含む TextLine を返します。
パラメーター
charIndex:int — 文字の 0 から始まるインデックス値です。つまり、最初の文字は 0、2 番目の文字は 1 で、以下同様に続きます。
|
flash.text.engine:TextLine — charIndex で指定された位置の文字を含む TextLine です。
|
例外
RangeError — 指定された文字インデックスは範囲外です。
|
recreateTextLine | () | メソッド |
public function recreateTextLine(textLine:flash.text.engine:TextLine, previousLine:flash.text.engine:TextLine = null, width:Number = 1000000, lineOffset:Number = 0.0, fitSomething:Boolean = false):flash.text.engine:TextLine
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2, Flash Lite 4 |
既存のテキスト行を再利用するテキストブロックの内容からテキスト行を作成します。その際、previousLine
パラメーターで指定されたポイントで開始し、width
パラメーターで指定されたポイントで改行するように指示します。テキスト行は TextLine オブジェクトで表され、表示リストに追加できます。既存のテキスト行を再利用すると、作成されるオブジェクトの数が少なくなるので、パフォーマンスが向上します。
再作成される textLine
は、どのテキストブロック内にあっても解放されます。さらに、DisplayObjectContainer
、InteractiveObject
および DisplayObject
から継承されたプロパティを含むすべてのプロパティは、デフォルト値にリセットされます。最後に、グラフィック要素およびその他の装飾を含む行のすべての子は削除され、その行に対するすべてのイベントリスナーも削除されます。パフォーマンスを向上させるために、このような全体的なリセットでは唯一例外的に、行自体は親から削除されません。
既に改行されているテキストブロックの範囲を越えて行を改行すると、改行が発生する領域の内外で行の有効性が変更されることがあります。行のステータスが、VALID から INVALID または POSSIBLY_INVALID に変更されることがあります。新しく改行された行が、ステータスが POSSIBLY_INVALID の前回改行された行に完全に揃っている場合、前回改行された行およびそれ以降のすべての POSSIBLY_INVALID の行のステータスが VALID に戻ります。TextLineValidity
のメンバーではない値に設定された行の有効性は、VALID には変更されませんが、INVALID には変更されることがあります。テキストブロックに対する変更の後は、再改行するテキスト行を開始または継続する位置を firstInvalidLine
プロパティで確認します。
テキストに Unicode Zero Width Space(ZWSP)文字を含めることによって、人為的な単語分割を作成できます。これは、正しく改行するために辞書が必要になるタイ語などの言語の場合に便利です。Flash ランタイムは、このような辞書を含んでいません。
メモリのオーバーヘッドを削減する方法として、目的の行がすべて作成済みの場合、親のフレームのリサイズなどでその度に再改行が必要になることがない限り、ユーザーは releaseLineCreationData()
メソッドを呼び出して、改行に関連する一時データからテキストブロックを解放することができます。
パラメーター
textLine:flash.text.engine:TextLine — 前に作成された TextLine を再利用するよう指定します。
| |
previousLine:flash.text.engine:TextLine (default = null ) — 直前に改行された行を指定します。この行の次から改行処理を開始します。1 行目を改行する場合は null を指定します。
| |
width:Number (default = 1000000 ) — 線幅をピクセル単位で指定します。実際の幅はより小さくなることがあります。
| |
lineOffset:Number (default = 0.0 ) — 行の起点とタブストップの起点の差をピクセルで指定するオプションのパラメーターです。行揃えしていないが、タブを整列させる必要がある場合に使用できます。このパラメーターのデフォルト値は 0.0 です。
| |
fitSomething:Boolean (default = false ) — 指定された幅には関係なく(例外がスローされる場合もある幅が 0 または負の場合でも)、1 文字以上をテキスト行に収めるように Flash Player に指示するオプションのパラメーターです。
|
flash.text.engine:TextLine — テキスト行。テキストブロックが空か、指定された幅が次のエレメントの幅より小さい場合は null 。これらのいずれの場合かを識別するには、テキストブロックの textLineCreationResult プロパティをチェックします。
|
例外
ArgumentError — textLine が null の場合。
| |
ArgumentError — previousLine で指定された TextLine が有効でない場合。
| |
ArgumentError — previousLine で指定された TextLine が別の TextBlock に所有されている場合。
| |
ArgumentError — previousLine で指定された TextLine が textLine でも指定されている場合。
| |
ArgumentError — width が 0 未満の場合(fitSomething が true の場合を除く)。
| |
ArgumentError — width が TextLine.MAX_LINE_WIDTH より大きい場合。
| |
IllegalOperationError — テキストブロックの 1 つ以上のエレメントに null ElementFormat がある場合。
|
関連する API エレメント
例 ( この例の使用方法 )
textLine
という TextLine オブジェクトを再利用します。
var elementFormat:ElementFormat = new ElementFormat(); elementFormat.fontDescription = new FontDescription("Arial"); elementFormat.fontSize = 48; var textElement:TextElement = new TextElement("Text you'll never see", elementFormat) var textBlock:TextBlock = new TextBlock(textElement); var textLine:TextLine = textBlock.createTextLine(); textLine.x = 50; textLine.y = 50; addChild(textLine); // Reuse the element format to preserve the text formatting var elementTwo:TextElement = new TextElement("Text you see", elementFormat); textBlock.content = elementTwo; textBlock.recreateTextLine(textLine); // Set the position (and any other display object properties like alpha, children, etc.) // otherwise, they're all set to default properties. textLine.x = 50; textLine.y = 50;
releaseLineCreationData | () | メソッド |
public function releaseLineCreationData():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2, Flash Lite 4 |
テキストブロックに、テキスト行の作成に関連する一時ファイルのデータをすべて解放するように指示します。アプリケーションのメモリ使用率をできるだけ低く抑えるには、テキストブロックからテキスト行を作成するときに releaseLineCreationData()
メソッドを呼び出します。 ただし、(例えば、親のフレームのリサイズなどで発生する)再改行のパフォーマンスをできるだけ高くするには、releaseLineCreationData()
メソッドは呼び出さないようにします。メモリとパフォーマンスとのバランスはアプリケーションによって異なります。
内容が確定し、更新されることがないテキストの場合、推奨される処理は、テキストブロックを初期化し、目的の出力が得られるまで繰り返し createTextLine()
メソッドを呼び出した後、 releaseLineCreationData()
メソッドを呼び出します。
関連する API エレメント
releaseLines | () | メソッド |
public function releaseLines(firstLine:flash.text.engine:TextLine, lastLine:flash.text.engine:TextLine):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
TextBlock によって維持される行のリストから、テキスト行の範囲を削除します。これにより、他の参照が存在しない場合、行がガベージコレクションされます。
削除された行の textBlock
、nextLine
および previousLine
メンバーを null
に設定します。TextBlock の削除された行および削除された行の後のすべての行の validity
を TextLineValidity.INVALID
に設定します。
パラメーター
firstLine:flash.text.engine:TextLine — リリースされる最初の行を指定します。
| |
lastLine:flash.text.engine:TextLine — リリースされる最後の行を指定します。
|
例外
ArgumentError — firstLine または lastLine によって指定される TextLine が、テキストブロックによって維持されるテキスト行のリストにない場合。
|
関連する API エレメント
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(); } } }
Tue Jun 12 2018, 10:34 AM Z