パッケージ | flashx.textLayout.compose |
クラス | public class StandardFlowComposer |
継承 | StandardFlowComposer FlowComposerBase Object |
実装 | IFlowComposer |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
compose()
または updateAllControllers()
を呼び出すたびに、テキストフローは最初の手順として正規化されます。正規化プロセスでは TextFlow オブジェクトの変更部分がチェックされ、次の手順が実行されます。
- 空の FlowLeafElement オブジェクトと SubParagraphGroupElement オブジェクトが削除されます。
- 同じ属性を持つ兄弟範囲が結合されます。
- フローが空の場合、空の段落が追加されます。
StandardFlowComposer を使用するには、TextFlow オブジェクトの flowComposer
プロパティに割り当てます。updateAllControllers()
メソッドを呼び出して、フローコンポーザーに関連付けられているコンテナでテキストをレイアウトおよび表示します。
注意:単純な静的テキストフローの場合、テキスト行のファクトリークラスの 1 つを使用することもできます。これらのファクトリークラスを使用すると、一般にフローコンポーザーよりも少ないオーバーヘッドで行を作成できますが、編集、動的な変更、ユーザー操作はサポートされません。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
composing : Boolean [読み取り専用]
フローコンポーザーが現在、構成操作を実行している場合は True。 | StandardFlowComposer | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
damageAbsoluteStart : int [読み取り専用]
構成と更新が必要なテキストフローの、最初のエレメントの直前の絶対位置。 | FlowComposerBase | ||
numControllers : int [読み取り専用]
この IFlowComposer インスタンスに割り当てられているコンテナ数。 | StandardFlowComposer | ||
numLines : int [読み取り専用]
フロー内で構成される合計行数。 | FlowComposerBase | ||
rootElement : ContainerFormattedElement [読み取り専用]
この IFlowComposer インスタンスに関連付けられているルートエレメント。 | StandardFlowComposer | ||
swfContext : ISWFContext
必要に応じて FTE 呼び出しを行うために使用される ISWFContext インスタンスです。 | FlowComposerBase | ||
textFlow : flashx.textLayout.elements:TextFlow [読み取り専用]
このフローコンポーザーが関連付けられている TextFlow オブジェクト。 | FlowComposerBase |
メソッド | 定義元 | ||
---|---|---|---|
StandardFlowComposer オブジェクトを作成します。 | StandardFlowComposer | ||
コントローラーをこの IFlowComposer インスタンスに追加します。 | StandardFlowComposer | ||
コンテナを、指定されたインデックスにあるこの IFlowComposer インスタンスに追加します。 | StandardFlowComposer | ||
フローのルートエレメントのコンテンツを表示するために必要な行数、およびフローの表示コンテナでのこれらの行の位置を計算します。 | StandardFlowComposer | ||
指定されたインデックスにあるコンテナまで、ルートエレメントのコンテンツを構成します。 | StandardFlowComposer | ||
指定された位置までルートエレメントのコンテンツを構成します。 | StandardFlowComposer | ||
損傷していて再構成が必要なものとして行にマークをつけます。 | FlowComposerBase | ||
指定された位置のコンテンツを含むコントローラーのインデックスを返します。 | StandardFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
指定された位置のコンテンツを含む、TextFlowLine オブジェクトを返します。 | FlowComposerBase | ||
指定された位置のコンテンツを含む TextFlowLine オブジェクトの、連続する行番号を返します。 | FlowComposerBase | ||
指定された ContainerController オブジェクトの最初のコンテンツエレメントの絶対位置を返します。 | StandardFlowComposer | ||
指定されたインデックスにある ContainerController オブジェクトを返します。 | StandardFlowComposer | ||
指定された ContainerController オブジェクトのインデックスを返します。 | StandardFlowComposer | ||
指定された行番号の行を返します。 | FlowComposerBase | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
操作マネージャーの変更時に TextFlow によって呼び出されます。 | StandardFlowComposer | ||
フローの開始と指定された位置のコンテンツを含む行との間の TextFlowLine オブジェクトに、損傷とマークされるものがあるかどうかを示します。 | FlowComposerBase | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
この IFlowComposer インスタンスからすべてのコントローラーを削除します。 | StandardFlowComposer | ||
この IFlowComposer インスタンスから 1 つのコントローラーを削除します。 | StandardFlowComposer | ||
この IFlowComposer インスタンスから、指定されたインデックスにあるコントローラーを削除します。 | StandardFlowComposer | ||
absolutePosition パラメーターによって指定された位置を含むコンテナにフォーカスを設定します。 | StandardFlowComposer | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
StandardFlowComposer | |||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
ルートエレメントのコンテンツを構成し、表示を更新します。 | StandardFlowComposer | ||
TextFlow へのマッピングが維持されるように行の長さを更新します。 | FlowComposerBase | ||
指定されたインデックスにあるコンテナまで、表示を構成および更新します。 | StandardFlowComposer | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
メソッド | 定義元 | ||
---|---|---|---|
構成が必要な場合は true、必要ない場合は false を返します | StandardFlowComposer |
composing | プロパティ |
numControllers | プロパティ |
rootElement | プロパティ |
rootElement:ContainerFormattedElement
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
この IFlowComposer インスタンスに関連付けられているルートエレメント。
ルートエレメントにすることができるのは、TextFlow オブジェクトのみです。
実装
public function get rootElement():ContainerFormattedElement
StandardFlowComposer | () | コンストラクター |
public function StandardFlowComposer()
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
StandardFlowComposer オブジェクトを作成します。
StandardFlowComposer オブジェクトを使用するには、TextFlow オブジェクトの flowComposer
プロパティに割り当てます。updateAllControllers()
メソッドを呼び出して、フローコンポーザーに関連付けられているコンテナでテキストをレイアウトおよび表示します。
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { import flashx.textLayout.elements.TextFlow; import flashx.textLayout.compose.StandardFlowComposer; public class StandardFlowComposer_constructor { public function createComposer(textFlow:TextFlow):void { textFlow.flowComposer = new StandardFlowComposer(); } } }
addController | () | メソッド |
public function addController(controller:ContainerController):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
コントローラーをこの IFlowComposer インスタンスに追加します。
コンテナがコンテナリストの末尾に追加されます。
パラメーター
controller:ContainerController — 追加する ContainerController オブジェクトです。
|
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_addController { import flash.display.Sprite; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.container.ContainerController; public function setupController(textFlow:TextFlow):void { var container:Sprite = new Sprite(); var controller:ContainerController = new ContainerController( container, 400, 200 ); textFlow.flowComposer.addController( controller ); } } }
addControllerAt | () | メソッド |
public function addControllerAt(controller:ContainerController, index:int):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
コンテナを、指定されたインデックスにあるこの IFlowComposer インスタンスに追加します。
コントローラーのリストは 0 を基準としています(最初のコントローラーのインデックスは 0 です)。
パラメーター
controller:ContainerController — 追加する ContainerController オブジェクトです。
| |
index:int — コントローラーリストで ContainerController オブジェクトを挿入する位置を指定する数値インデックスです。
|
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_addControllerAt { import flash.display.Sprite; import flashx.textLayout.elements.TextFlow; import flashx.textLayout.container.ContainerController; public function setupController(textFlow:TextFlow):void { var container:Sprite = new Sprite(); var controller:ContainerController = new ContainerController( container, 400, 200 ); textFlow.flowComposer.addControllerAt( controller, 0 ); } } }
compose | () | メソッド |
public function compose():Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
フローのルートエレメントのコンテンツを表示するために必要な行数、およびフローの表示コンテナでのこれらの行の位置を計算します。
最後の構成操作以降に変更された場合、compose()
メソッドはコンテンツのみを構成します。フローコンテンツが変更されていない場合、以後の compose()
または updateAllControllers()
の呼び出しで追加の再構成が実行されないように、結果が保存されます。
いずれかのコンテナのコンテンツが変更された場合、メソッドは true
を返します。
Boolean — 何かが変更された場合は true。
|
関連する API エレメント
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_compose { import flashx.textLayout.elements.TextFlow; public function compose(textFlow:TextFlow):void { textFlow.flowComposer.compose(); } } }
composeToController | () | メソッド |
public function composeToController(index:int):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
指定されたインデックスにあるコンテナまで、ルートエレメントのコンテンツを構成します。
指定されたインデックスにあるコンテナまでのいずれかコンテナのコンテンツが変更された場合、メソッドは true
を返します。コントローラーの数よりも index
が大きい場合(または指定されていない場合)、すべてのコンテナが構成されます。
パラメーター
index:int (default = NaN ) — テキストフローで少なくともこのコンテナまで構成します。コントローラーの数よりも controllerIndex が大きい場合は、最終コンテナの最後まで構成します。
|
Boolean — 何かが変更された場合は true。
|
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_composeToController { import flashx.textLayout.elements.TextFlow; public function compose(textFlow:TextFlow):void { textFlow.flowComposer.composeToController( 3 ); } } }
composeToPosition | () | メソッド |
public function composeToPosition(absolutePosition:int):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
指定された位置までルートエレメントのコンテンツを構成します。
指定された位置のコンテンツを保持するコンテナまでのいずれかのコンテナのコンテンツが変更された場合、メソッドは true
を返します。absolutePosition
が TextFlow の長さよりも大きい場合(または指定されていない場合)、フロー全体が構成されます。
パラメーター
absolutePosition:int (default = NaN ) — テキストフローで少なくともこの位置まで構成します。デフォルトまたはフローの末尾が absolutePosition を超える場合、フローの最後まで構成されます。
|
Boolean — 何かが変更された場合は true。
|
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { public class StandardFlowComposer_composeToPosition { import flashx.textLayout.elements.TextFlow; public function compose(textFlow:TextFlow):void { textFlow.flowComposer.composeToPosition( 344 ); } } }
findControllerIndexAtPosition | () | メソッド |
public function findControllerIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
指定された位置のコンテンツを含むコントローラーのインデックスを返します。
位置は、テキストフローの 2 つの文字間または他のエレメント間の仕切りと見なすことができます。absolutePosition
の値が、あるコンテナの最後の文字と次のコンテナの最初の文字の間の位置である場合、preferPrevious
パラメーターが true
に設定されている場合は前のコンテナが返され、preferPrevious
パラメーターが false
に設定されている場合は後のコンテナが返されます。
指定された位置のコンテンツがどのコンテナにもない場合、またはテキストフローの位置の範囲外にある場合、メソッドは -1 を返します。
パラメーター
absolutePosition:int — コンテナインデックスがシークされるコンテンツの位置です。
| |
preferPrevious:Boolean (default = false ) — あるコンテナの最終エレメントと次のコンテナの最初のエレメントの間に位置がある場合に、返されるコンテナインデックスを指定します。
|
int — コンテナコントローラーのインデックス、またはない場合は -1。
|
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { import flashx.textLayout.elements.TextFlow; import flashx.textLayout.compose.StandardFlowComposer; public class StandardFlowComposer_findControllerIndexAtPosition { public function findControllerIndexAtPosition(textFlow:TextFlow):void { var index:int = textFlow.flowComposer.findControllerIndexAtPosition( 344 ); } } }
getAbsoluteStart | () | メソッド |
public function getAbsoluteStart(controller:ContainerController):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
指定された ContainerController オブジェクトの最初のコンテンツエレメントの絶対位置を返します。
位置は、テキストフローの 2 つの文字または他のエレメント間の仕切りをカウントして計算されます。フローの最初のエレメントの前の位置は、ゼロです。絶対位置は、フローの先頭からカウントする位置です。
パラメーター
controller:ContainerController — このフローコンポーザーと関連付けられている ContainerController オブジェクト。
|
int — ContainerController の最初の文字またはグラフィックの前の位置です。
|
getControllerAt | () | メソッド |
public function getControllerAt(index:int):ContainerController
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
指定されたインデックスにある ContainerController オブジェクトを返します。
パラメーター
index:int — 返す ContainerController オブジェクトのインデックスです。
|
ContainerController — 指定された位置の ContainerController オブジェクトです。
|
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { import flashx.textLayout.elements.TextFlow; import flashx.textLayout.container.ContainerController; public class StandardFlowComposer_getControllerAt { public function findControllerIndexAtPosition(textFlow:TextFlow):void { var controller:ContainerController = textFlow.flowComposer.getControllerAt( 0 ); } } }
getControllerIndex | () | メソッド |
public function getControllerIndex(controller:ContainerController):int
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
指定された ContainerController オブジェクトのインデックスを返します。
パラメーター
controller:ContainerController — 検索する ContainerController オブジェクトへの参照です。
|
int — 指定された ContainerController オブジェクトのインデックス、またはこのフローコンポーザーにコントローラーが関連付けられていない場合は -1。
|
例 ( この例の使用方法 )
package flashx.textLayout.compose.examples { import flashx.textLayout.elements.TextFlow; import flashx.textLayout.container.ContainerController; public class StandardFlowComposer_getControllerIndex { public function getControllerIndex(textFlow:TextFlow, controller:ContainerController):void { var index:int = textFlow.flowComposer.getControllerIndex( controller ); } } }
interactionManagerChanged | () | メソッド |
public function interactionManagerChanged(newInteractionManager:ISelectionManager):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
操作マネージャーの変更時に TextFlow によって呼び出されます。
この関数は、自動的に呼び出されます。通常、コードでは、このメソッドを呼び出す必要はありません。StandardFlowComposer を拡張するクラスは、このメソッドをオーバーライドすることにより、操作マネージャーに依存するイベントリスナーとその他のプロパティを更新できます。
パラメーター
newInteractionManager:ISelectionManager — 新しい ISelectionManager インスタンス。
|
preCompose | () | メソッド |
removeAllControllers | () | メソッド |
public function removeAllControllers():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
この IFlowComposer インスタンスからすべてのコントローラーを削除します。
removeController | () | メソッド |
public function removeController(controller:ContainerController):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
この IFlowComposer インスタンスから 1 つのコントローラーを削除します。
パラメーター
controller:ContainerController — 削除する ContainerController インスタンスです。
|
removeControllerAt | () | メソッド |
setFocus | () | メソッド |
public function setFocus(absolutePosition:int, leanLeft:Boolean = false):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
absolutePosition
パラメーターで指定された位置を含むコンテナにフォーカスを設定します。
StandardFlowComposer は、指定されたテキストフロー位置を含む ContainerController オブジェクトの setFocus()
メソッドを呼び出します。
パラメーター
absolutePosition:int — フォーカスを受け取るコンテナのテキストフローでの位置を指定します。
| |
leanLeft:Boolean (default = false ) — true で、位置がコンテナの最初の文字より前の場合、前のコンテナの末尾にフォーカスを設定します。
|
関連する API エレメント
setRootElement | () | メソッド |
public function setRootElement(newRootElement:ContainerFormattedElement):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
パラメーター
newRootElement:ContainerFormattedElement |
updateAllControllers | () | メソッド |
public function updateAllControllers():Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
ルートエレメントのコンテンツを構成し、表示を更新します。
テキストレイアウトは、構成と表示の 2 つの段階で行われます。構成段階では、フローコンポーザーは、コンテンツの表示に必要な行数およびフローの表示コンテナでのこれらの行の位置を計算します。表示段階では、フローコンポーザーはコンテナの表示オブジェクトの子を更新します。updateAllControllers()
メソッドは、両方の段階を順番に実行します。StandardFlowComposer はコンテンツへの変更を監視して、必要な場合にのみ、構成および表示のフルサイクルが実行されるようにします。
このメソッドはすべてのテキスト行を更新し、リストを直ちに同期的に表示します。
いずれかのコンテナのコンテンツが変更されると、メソッドは true
を返します。
Boolean — 何かが変更された場合は true。
|
updateToController | () | メソッド |
public function updateToController(index:int):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
指定されたインデックスにあるコンテナまで、表示を構成および更新します。
updateToController()
メソッドはコンテンツを構成し、指定されたインデックスにあるコンテナまで、すべてのコンテナの表示を更新します。例えば、20 個のコンテナチェーンがあり、10 というインデックスを指定した場合、updateToController()
により最初から 10 番目までの(インデックス 0 から 9)コンテナが構成および表示されます。構成は、そのポイントで終了します。controllerIndex
が -1(または指定されていない場合)、すべてのコンテナが更新されます。
このメソッドはすべてのテキスト行を更新し、リストを直ちに同期的に表示します。
いずれかのコンテナのコンテンツが変更されると、メソッドは true
を返します。
パラメーター
index:int (default = NaN ) — 更新する最後のコンテナのインデックス(デフォルトでは、すべてのコンテナが更新されます)
|
Boolean — 何かが変更された場合は true 。
|
importToFlow()
メソッドを使用して作成されます。
package flashx.textLayout.compose.examples { import flash.display.Sprite; import flashx.textLayout.compose.StandardFlowComposer; import flashx.textLayout.container.ContainerController; import flashx.textLayout.conversion.TextConverter; import flashx.textLayout.elements.TextFlow; public class StandardFlowComposer_ClassExample extends Sprite { private var poem:String = "Sonnet 18\n" + "Shall I compare thee to a summer's day?\n" + "Thou art more lovely and more temperate:\n" + "Rough winds do shake the darling buds of May,\n" + "And summer's lease hath all too short a date:\n" + "Sometime too hot the eye of heaven shines,\n" + "And often is his gold complexion dimmed,\n" + "And every fair from fair sometime declines,\n" + "By chance, or nature's changing course untrimmed:\n" + "But thy eternal summer shall not fade,\n" + "Nor lose possession of that fair thou ow'st,\n" + "Nor shall death brag thou wand'rest in his shade,\n" + "When in eternal lines to time thou grow'st,\n" + "So long as men can breathe or eyes can see,\n" + "So long lives this, and this gives life to thee.\n" + "William Shakespeare\n"; private var flow:TextFlow; public function StandardFlowComposer_ClassExample() { var firstContainer:Sprite = new Sprite(); firstContainer.x = 180; firstContainer.y = 30; this.stage.addChild( firstContainer ); var secondContainer:Sprite = new Sprite(); secondContainer.x = 30; secondContainer.y = 130 this.stage.addChild( secondContainer ); var firstController:ContainerController = new ContainerController( firstContainer, 300, 100 ); var secondController:ContainerController = new ContainerController( secondContainer, 800, 600 ); flow = TextConverter.importToFlow( poem, TextConverter.PLAIN_TEXT_FORMAT ); flow.flowComposer = new StandardFlowComposer();; flow.flowComposer.addController( firstController ); flow.flowComposer.addController( secondController ); flow.flowComposer.updateAllControllers(); } } }
Tue Jun 12 2018, 10:34 AM Z