패키지 | flashx.textLayout.compose |
인터페이스 | public interface IFlowComposer |
구현자 | StandardFlowComposer |
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
흐름 컴포저 구현을 사용하여 표시된 텍스트 흐름은 동적이고 상호 작용을 허용합니다. 흐름 컴포저는 하나 이상의 표시 컨트롤러를 관리합니다. 각 컨트롤러는 표시 객체 컨테이너(예: Sprite)와 연결되며 텍스트 흐름에 대해 만들어진 줄은 이러한 컨테이너를 통해 최종적으로 표시됩니다. 다음 다이어그램에서는 TextFlow, IFlowComposer, ContainerController 및 DisplayObjectContainer 객체 간의 관계를 보여 줍니다.
흐름 컴포저는 각 컨테이너에서 텍스트 흐름이 적절한 부분을 계산하고 적절한 텍스트 줄을 해당 컨테이너의 표시 객체에 추가합니다. IFlowComposer 인터페이스는 레이아웃 계산 및 표시 업데이트를 위해 별개의 메서드를 정의합니다. IFlowComposer는 또한 텍스트 흐름을 점진적으로 컴포지션하고 업데이트하는 메서드를 정의합니다. 이러한 메서드를 사용하여 긴 텍스트 흐름을 업데이트할 때 사용자 인터페이스를 차단하지 않도록 할 수 있습니다.
텍스트 컴포지션 및 표시 관리뿐 아니라 흐름 컴포저는 포커스를 가지는 컨테이너를 제어하고 선택 강조(컨테이너 경계를 넘나들 수 있음)의 표시를 관리하며 흐름의 모든 TextLine 객체에 대한 직접 액세스를 제공합니다.
IFlowComposer 구현을 사용하려면 이 구현의 인스턴스를 TextFlow 객체의 flowComposer
속성에 할당합니다. 그런 다음 updateAllControllers()
메서드를 호출하여 흐름 컴포저에 연결된 컨테이너에 텍스트를 배치하고 표시합니다.
참고: 간단한 정적 텍스트 흐름의 경우 텍스트 줄 팩토리 클래스 중 하나를 사용할 수도 있습니다. 이러한 팩토리 클래스는 대개 흐름 컴포저보다 오버헤드가 적은 줄을 만들지만 편집, 동적 변경 또는 사용자 상호 작용을 지원하지 않습니다.
관련 API 요소
FlowComposerBase
StandardFlowComposer
TextFlow
StringTextLineFactory
TextFlowTextLineFactory
속성 | 정의 주체 | ||
---|---|---|---|
composing : Boolean [읽기 전용]
흐름 컴포저가 현재 컴포지션 작업을 수행 중이면 True입니다. | IFlowComposer | ||
damageAbsoluteStart : int [읽기 전용]
흐름 시작의 절대 위치로서, 루트 요소의 첫 번째 잘못된 위치입니다. | IFlowComposer | ||
numControllers : int [읽기 전용]
이 IFlowComposer 인스턴스에 할당된 컨테이너의 수입니다. | IFlowComposer | ||
numLines : int [읽기 전용]
흐름에 구성된 전체 줄 수입니다. | IFlowComposer | ||
rootElement : ContainerFormattedElement [읽기 전용]
이 IFlowComposer 인스턴스와 연결된 루트 요소입니다. | IFlowComposer | ||
swfContext : ISWFContext
특정 SWF 컨텍스트에서 수행해야 하는 호출에 사용할 ISWFContext 인스턴스입니다. IFlowComposer 구현은 인터페이스 사용자가 해당 구현이 포함된 컨텍스트와 다른 SWF 컨텍스트에서 줄을 만들 수 있도록 이 속성의 설정을 허용해야 합니다. | IFlowComposer |
메서드 | 정의 주체 | ||
---|---|---|---|
이 IFlowComposer 인스턴스에 컨트롤러를 추가합니다. | IFlowComposer | ||
지정된 인덱스에서 이 IFlowComposer 인스턴스에 컨트롤러를 추가합니다. | IFlowComposer | ||
흐름의 루트 요소에 있는 내용을 표시하기 위해 필요한 줄 수와 흐름의 표시 컨테이너 내 이러한 줄의 위치를 계산합니다. | IFlowComposer | ||
지정된 인덱스의 해당 컨테이너까지 루트 요소의 내용을 컴포지션합니다. | IFlowComposer | ||
지정된 위치까지 루트 요소의 내용을 컴포지션합니다. | IFlowComposer | ||
줄이 손상되어 다시 구성해야 하는 상태임을 표시합니다. | IFlowComposer | ||
지정된 위치의 내용을 포함하는 컨트롤러의 인덱스를 반환합니다. | IFlowComposer | ||
findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
지정된 위치의 내용을 포함하는 TextFlowLine 객체를 반환합니다. | IFlowComposer | ||
지정된 위치의 내용을 포함하는 TextFlowLine 객체의 연속 줄 번호를 반환합니다. | IFlowComposer | ||
지정된 인덱스의 ContainerController 객체를 반환합니다. | IFlowComposer | ||
지정된 ContainerController 객체의 인덱스를 반환합니다. | IFlowComposer | ||
지정된 줄 번호의 줄을 반환합니다. | IFlowComposer | ||
상호 작용 관리자가 변경될 때 TextFlow에서 호출됩니다. | IFlowComposer | ||
흐름의 시작과 지정된 위치의 내용을 포함하는 줄 사이에 있는 TextFlowLine 객체가 손상된 것으로 표시되는지 여부를 나타냅니다. | IFlowComposer | ||
이 IFlowComposer 인스턴스에서 모든 컨트롤러를 제거합니다. | IFlowComposer | ||
이 IFlowComposer 인스턴스에서 컨트롤러를 제거합니다. | IFlowComposer | ||
이 IFlowComposer 인스턴스에서 지정된 인덱스의 컨트롤러를 제거합니다. | IFlowComposer | ||
absolutePosition 매개 변수에 지정된 위치를 포함하는 컨테이너에 포커스를 설정합니다. | IFlowComposer | ||
IFlowComposer | |||
루트 요소의 내용을 컴포지션하고 표시를 업데이트합니다. | IFlowComposer | ||
TextFlow에 대한 매핑을 유지하기 위해 줄의 길이를 업데이트합니다. | IFlowComposer | ||
지정된 인덱스의 해당 컨테이너까지 표시를 컴포지션하고 업데이트합니다. | IFlowComposer |
composing | 속성 |
damageAbsoluteStart | 속성 |
numControllers | 속성 |
numLines | 속성 |
rootElement | 속성 |
rootElement:ContainerFormattedElement
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
이 IFlowComposer 인스턴스와 연결된 루트 요소입니다.
TextFlow 객체만 루트 요소가 될 수 있습니다.
구현
public function get rootElement():ContainerFormattedElement
관련 API 요소
swfContext | 속성 |
swfContext:ISWFContext
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
특정 SWF 컨텍스트에서 수행해야 하는 호출에 사용할 ISWFContext 인스턴스입니다.
IFlowComposer 구현은 인터페이스 사용자가 해당 구현이 포함된 컨텍스트와 다른 SWF 컨텍스트에서 줄을 만들 수 있도록 이 속성의 설정을 허용해야 합니다. ISWFContext의 기본 구현도 제공해야 합니다.
구현
public function get swfContext():ISWFContext
public function set swfContext(value:ISWFContext):void
관련 API 요소
addController | () | 메서드 |
public function addController(controller:ContainerController):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
이 IFlowComposer 인스턴스에 컨트롤러를 추가합니다.
컨테이너는 컨테이너 목록의 끝에 추가됩니다.
매개 변수
controller:ContainerController — 추가할 ContainerController 객체입니다.
|
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 객체를 삽입할 위치를 지정하는 숫자 인덱스입니다.
|
compose | () | 메서드 |
public function compose():Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
흐름의 루트 요소에 있는 내용을 표시하기 위해 필요한 줄 수와 흐름의 표시 컨테이너 내 이러한 줄의 위치를 계산합니다.
이 메서드의 구현은 표시를 업데이트하지 않아야 하지만 해당 흐름 내용이 변경되지 않은 경우 compose()
또는 updateAllControllers()
에 대한 다음 호출에서 추가로 재컴포지션을 수행하지 않도록 결과를 저장해야 합니다.
어떤 컨테이너라도 내용이 변경되면 메서드에서 true
를 반환해야 합니다.
Boolean — 변경 내용이 있으면 true입니다.
|
관련 API 요소
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입니다.
|
관련 API 요소
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입니다.
|
관련 API 요소
damage | () | 메서드 |
public function damage(startPosition:int, damageLength:int, damageType:String):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
줄이 손상되어 다시 구성해야 하는 상태임을 표시합니다.
매개 변수
startPosition:int — 손상할 범위의 시작 위치입니다.
| |
damageLength:int — 손상할 문자의 수입니다.
| |
damageType:String — 손상의 유형입니다. flashx.textLayout.compose.FlowDamageType 중 하나입니다.
|
관련 API 요소
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입니다.
|
findLineAtPosition | () | 메서드 |
public function findLineAtPosition(absolutePosition:int, preferPrevious:Boolean = false):flashx.textLayout.compose:TextFlowLine
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
지정된 위치의 내용을 포함하는 TextFlowLine 객체를 반환합니다.
위치는 두 문자 또는 텍스트 흐름의 다른 요소 간의 경계 지점으로 생각할 수 있습니다. absolutePosition
의 값이 어떤 줄의 마지막 요소와 다음 줄의 첫 요소 사이의 위치일 경우 preferPrevious
매개 변수가 true
로 설정되어 있으면 앞 줄이 반환되고 preferPrevious
매개 변수가 false
로 설정되어 있으면 다음 줄이 반환됩니다.
매개 변수
absolutePosition:int — TextFlowLine 객체를 배치할 내용의 위치입니다.
| |
preferPrevious:Boolean (default = false ) — 위치가 한 줄의 마지막 요소와 다음 줄의 첫 요소 사이에 있을 경우 반환할 줄을 지정합니다.
|
flashx.textLayout.compose:TextFlowLine — 지정된 위치의 내용을 포함하는 TextFlowLine입니다. 찾지 못한 경우에는 null입니다.
|
findLineIndexAtPosition | () | 메서드 |
public function findLineIndexAtPosition(absolutePosition:int, preferPrevious:Boolean = false):int
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
지정된 위치의 내용을 포함하는 TextFlowLine 객체의 연속 줄 번호를 반환합니다.
첫 번째 줄의 숫자는 0이고 마지막 줄의 숫자는 (줄 수 - 1)입니다. absolutePosition
에 지정된 위치가 텍스트 흐름의 끝을 지나면 이 메서드는 텍스트 흐름에 추가되는 다음 새 줄에 할당되는 숫자를 반환해야 합니다. 이 숫자는 현재 줄의 수와 같습니다.
위치는 두 문자 또는 텍스트 흐름의 다른 요소 간의 경계 지점으로 생각할 수 있습니다. absolutePosition
의 값이 어떤 컨테이너의 마지막 줄과 다음 컨테이너의 첫 줄 사이의 위치일 경우 preferPrevious
매개 변수가 true
로 설정되어 있으면 앞 컨테이너가 반환되고 preferPrevious
매개 변수가 false
로 설정되어 있으면 다음 컨테이너가 반환됩니다.
매개 변수
absolutePosition:int — 텍스트 줄을 배치할 내용의 위치입니다.
| |
preferPrevious:Boolean (default = false ) — 위치가 한 컨테이너의 마지막 줄과 다음 컨테이너의 첫 줄 사이에 있을 경우 반환할 컨테이너 인덱스를 지정합니다.
|
int — 지정된 위치의 텍스트 줄의 인덱스입니다. 찾지 못한 경우 끝을 지난 것으로 간주하고 줄 수를 반환합니다.
|
getControllerAt | () | 메서드 |
public function getControllerAt(index:int):ContainerController
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
지정된 인덱스의 ContainerController 객체를 반환합니다.
매개 변수
index:int — 반환할 ContainerController 객체의 인덱스입니다.
|
ContainerController — 지정된 위치의 ContainerController 객체입니다.
|
getControllerIndex | () | 메서드 |
public function getControllerIndex(controller:ContainerController):int
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
지정된 ContainerController 객체의 인덱스를 반환합니다.
매개 변수
controller:ContainerController — 검색할 ContainerController 객체에 대한 참조입니다.
|
int — 지정된 ContainerController 객체의 인덱스 또는 컨트롤러가 이 흐름 컴포저에 연결되지 않은 경우 -1입니다.
|
getLineAt | () | 메서드 |
public function getLineAt(index:int):flashx.textLayout.compose:TextFlowLine
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
지정된 줄 번호의 줄을 반환합니다.
줄 목록은 0부터 (줄 수 - 1)까지 숫자가 지정됩니다. index
의 값이 줄 목록 경계 외부에 있으면 이 함수는 null
을 반환합니다.
매개 변수
index:int — 반환할 TextFlowLine 객체의 줄 번호입니다.
|
flashx.textLayout.compose:TextFlowLine — 지정된 줄 번호의 TextFlowLine입니다. 찾지 못한 경우에는 null 입니다.
|
interactionManagerChanged | () | 메서드 |
public function interactionManagerChanged(newInteractionManager:ISelectionManager):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
상호 작용 관리자가 변경될 때 TextFlow에서 호출됩니다.
IFlowComposer 구현은 상호 작용 관리자를 참조하는 이벤트 리스너와 속성을 업데이트해야 합니다.
매개 변수
newInteractionManager:ISelectionManager — 새로운 ISelectionManager 인스턴스입니다.
|
isDamaged | () | 메서드 |
public function isDamaged(absolutePosition:int):Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
흐름의 시작과 지정된 위치의 내용을 포함하는 줄 사이에 있는 TextFlowLine 객체가 손상된 것으로 표시되는지 여부를 나타냅니다.
매개 변수
absolutePosition:int — 원하는 영역의 마지막 위치입니다.
|
Boolean — 흐름의 시작부터 absolutePosition 의 내용을 포함하는 줄까지 어떤 TextFlowLine 객체라도 손상된 것으로 표시되면 true입니다.
|
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, preferPrevious:Boolean = false):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
absolutePosition
매개 변수에 지정된 위치를 포함하는 컨테이너에 포커스를 설정합니다.
이 구현에서는 포커스가 나타내는 설정을 정의해야 합니다. 예를 들어 구현에서 Stage 객체의 기본 제공 focus
속성을 사용하거나(컨테이너가 InteractiveObject인 경우) 몇 가지 다른 방식으로 이 속성을 관리할 수 있습니다.
매개 변수
absolutePosition:int — 컨테이너의 텍스트 흐름에서 포커스를 받을 위치를 지정합니다.
| |
preferPrevious:Boolean (default = false ) — true인 경우 위치가 컨테이너의 첫 문자 앞에 있으면 앞 컨테이너의 끝에 포커스를 설정합니다.
|
관련 API 요소
setRootElement | () | 메서드 |
public function setRootElement(newRootElement:ContainerFormattedElement):void
매개 변수
newRootElement:ContainerFormattedElement |
updateAllControllers | () | 메서드 |
public function updateAllControllers():Boolean
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
루트 요소의 내용을 컴포지션하고 표시를 업데이트합니다.
텍스트 레이아웃은 대부분 컴포지션 및 표시의 두 단계로 수행됩니다. 컴포지션 단계에서 흐름 컴포저는 내용을 표시하는 데 필요한 줄 수뿐 아니라 흐름 표시 컨테이너 내 이러한 줄의 위치도 계산합니다. 표시 단계에서 흐름 컴포저는 해당 컨테이너의 표시 객체 자식을 업데이트합니다. updateAllControllers()
메서드는 두 단계 모두를 수행해야 합니다. 효율적인 구현에서는 필요한 경우에만 전체 주기의 컴포지션 및 표시가 수행되도록 내용 변경 사항을 추적합니다.
이 메서드는 모든 텍스트 줄과 표시 목록을 동적으로 즉시 업데이트합니다.
어떤 컨테이너라도 내용이 변경되면 메서드에서 true
를 반환해야 합니다.
Boolean — 변경 내용이 있으면 true입니다.
|
updateLengths | () | 메서드 |
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입니다.
|
Tue Jun 12 2018, 03:17 PM Z