패키지 | 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()
메서드를 호출하여 흐름 컴포저에 연결된 컨테이너에 텍스트를 배치하고 표시합니다.
참고: 간단한 정적 텍스트 흐름의 경우 텍스트 줄 팩토리 클래스 중 하나를 사용할 수도 있습니다. 이러한 팩토리 클래스는 대개 흐름 컴포저보다 오버헤드가 적은 줄을 만들지만 편집, 동적 변경 또는 사용자 상호 작용을 지원하지 않습니다.
관련 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 인스턴스에서 컨트롤러를 제거합니다. | 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 ) — 최소한 TextFlow의 이 컨테이너까지 컴포지션합니다. 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 ) — 최소한 TextFlow의 이 위치까지 컴포지션합니다. 기본적으로 또는 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 |
지정된 위치의 내용을 포함하는 컨트롤러의 인덱스를 반환합니다.
위치는 두 문자 또는 텍스트 흐름의 다른 요소 간의 경계 지점으로 생각할 수 있습니다. 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 객체에 있는 첫 번째 내용 요소의 절대 위치를 반환합니다.
위치는 텍스트 흐름의 두 문자 또는 다른 요소 간의 경계 지점을 세어 계산됩니다. 흐름의 첫 번째 요소 앞의 위치가 0입니다. 절대 위치는 흐름의 시작을 기준으로 계산한 위치입니다.
매개 변수
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 인스턴스에서 컨트롤러를 제거합니다.
매개 변수
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 |
루트 요소의 내용을 컴포지션하고 표시를 업데이트합니다.
텍스트 레이아웃은 컴포지션과 표시 두 단계로 수행됩니다. 컴포지션 단계에서 흐름 컴포저는 내용을 표시하는 데 필요한 줄 수뿐 아니라 흐름 표시 컨테이너 내 이러한 줄의 위치도 계산합니다. 표시 단계에서 흐름 컴포저는 해당 컨테이너의 표시 객체 자식을 업데이트합니다. 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()
는 첫 번째부터 열 번째(인덱스 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, 03:17 PM Z