| パッケージ | 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):voidbaselineFontDescription | プロパティ |
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
継承されるパブリックプロパティを隠す
継承されるパブリックプロパティを表示