| Package | mx.managers |
| Class | public class LayoutManager |
| Inheritance | LayoutManager EventDispatcher Object |
각 단계는 각각 독립하고 있어, 1 개의 단계의 UIComponent 가 모두 처리되고 나서, 다음의 단계로 나아갑니다. 어느 단계의 UIComponent 를 처리하고 있을 때, UIComponent 를 다른 단계에서 재처리 하는 요구가 발생하는 일이 있습니다. 이러한 요구는 큐에 포함되어 재처리가 필요한 단계가 다음번 실행될 때 처리됩니다.
처리단계는 validateProperties() 의 호출로 시작됩니다. 이 Methods는, object의 리스트 (네스트 레벨로 나란해질 수 있는 바꾸고)의 순서에 각 object의 validateProperties() Methods를 호출합니다.
리스트내의 object는, 네스트 레벨이가장깊은 object로부터 네스트의 차례로 처리됩니다. 이것은, 보텀 업순서, 또는 역순서라고도 불립니다.
이 단계에서는, 측정 단계 및 레이아웃 단계에 들어가기 전에, property의 설정에 의존하는 컨텐츠를 가지는 컴퍼넌트를 구성할 수 있습니다. 컴퍼넌트의 property 설정 Methods에서는, 퍼포먼스의 관점으로부터, 새로운 property치에 갱신하는 처리의 일부를 실행하지 않는 것이 있습니다. 대신에,invalidateProperties() 를 호출해, 이 단계가 실행될 때까지 처리를 연기합니다. 이것에 의해, property가 몇번이나 설정되는 경우에, 불필요한 작업의 발생을 방지합니다.
측정단계는 validateSize() 의 호출로 시작됩니다. 이 Methods는, object의 리스트 (네스트 레벨로 나란해질 수 있는 바꾸고)의 순서로 각 object의 validateSize() Methods를 호출해, object의 크기가 변경되어 있지 않은가를 판단합니다.
object의 invalidateSize() Methods가 이전에 불려 가고 있는 경우는,validateSize() Methods가 불려 갑니다. validateSize() 가 불려 간 결과, object의 크기 또는 위치가 변경되었을 경우는, object의 invalidateDisplayList() Methods가 불려 갑니다. 이 object는 처리 기다리는 큐에 추가되어 다음번 레이아웃 단계가 실행될 때 처리됩니다. 게다가 이 object의 부모는, invalidateSize() 에 의해 측정 단계에, invalidateDisplayList() 의 호출에 의해 레이아웃 단계의 양쪽 모두에 마크 됩니다.
리스트내의 object는, 네스트 레벨이가장깊은 object로부터 네스트의 차례로 처리됩니다. 이것은, 보텀 업순서, 또는 역순서라고도 불립니다.
레이아웃단계는 validateDisplayList() 의 호출로 시작됩니다. 이 Methods는, object의 리스트 (네스트 레벨의 역순서로 나란해질 수 있는 바꾸고)의 순서로 각 object의 validateDisplayList() Methods를 호출해, object에 대해서, 거기에 포함할 수 있어 모든 컴퍼넌트 (아이등)의 크기와 위치를 설정하는 것을 요구합니다.
object의 invalidateDisplayList() Methods가 이전에 불려 가고 있는 경우는, object에 대해서 validateDisplayList() Methods가 불려 갑니다.
리스트에 있는 object는, 네스트 레벨이가장 얕은object로부터 네스트의 차례와는 역의 차례로 처리됩니다. 이것은, 탑 다운순서, 또는 정순이라고도 불립니다.
통상, 컴퍼넌트는 validateProperties(),validateSize(), 또는 validateDisplayList() Methods를 재정의(override) 하지 않습니다. UIComponent 의 경우, 대부분의 컴퍼넌트가 commitProperties(),measure(), 또는 updateDisplayList() Methods를 재정의(override) 합니다. 이러한 Methods는 각각,validateProperties(),validateSize(),validateDisplayList() Methods에 의해 불려 갑니다.
어플리케이션의 기동시에, LayoutManager 의 단일의 인스턴스가 작성되어UIComponent.layoutManager property에 포함됩니다. 모든 컴퍼넌트는, 이 인스턴스를 사용할 필요가 있습니다. UIComponent object에 액세스 할 수 없는 경우는, 정적 LayoutManager.getInstance() Methods를 사용해 LayoutManager 에 액세스 할 수도 있습니다.
| property | 정의 | ||
|---|---|---|---|
![]() | constructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor 함수에의 참조입니다.
| Object | |
![]() | prototype : Object
[static]
클래스 또는 함수 object의 prototype object에의 참조입니다.
| Object | |
| usePhasedInstantiation : Boolean
LayoutManager 로 단계와 단계의 사이에서의 화면 갱신이 허가되고 있는지 어떤지를 나타내는 플래그입니다.
| LayoutManager | ||
| Methods | 정의 | ||
|---|---|---|---|
| LayoutManager ()
constructor .
| LayoutManager | ||
![]() | addEventListener (type:String , listener:Function , useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
event listener objects를 EventDispatcher object에 등록해, listener가 이벤트의 통지를 받도록(듯이) 합니다.
| EventDispatcher | |
![]() | dispatchEvent (event:Event ):Boolean
이벤트를 event 플로우(flow)에 dispatch합니다.
| EventDispatcher | |
| getInstance ():LayoutManager
[static]
이 싱글 톤 클래스의 유일한 인스턴스를 돌려줍니다. 인스턴스가 존재하지 않는 경우는, 작성합니다.
| LayoutManager | ||
![]() | hasEventListener (type:String ):Boolean
EventDispatcher object에, 특정의 event 타입에 대해서 등록된 listener가 있을지 어떨지를 확인합니다.
| EventDispatcher | |
![]() | hasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
| Object | |
| invalidateDisplayList (obj:ILayoutManagerClient ):void
컴퍼넌트가 변경되어 컴퍼넌트의 레이아웃이나 비주얼의 변경이 필요한 경우에 불려 갑니다.
| LayoutManager | ||
invalidateProperties (obj:ILayoutManagerClient ):void
validateProperties() Methods가 불려 가는 것을 대기하고 있는 컴퍼넌트의 리스트에 object를 추가합니다. | LayoutManager | ||
invalidateSize (obj:ILayoutManagerClient ):void
validateSize() Methods가 불려 가는 것을 대기하고 있는 컴퍼넌트의 리스트에 object를 추가합니다. | LayoutManager | ||
| isInvalid ():Boolean
검증이 필요한 컴퍼넌트가 있는 경우는
true 를 돌려줍니다. 모든 컴퍼넌트의 검증이 완료하고 있는 경우는 false 를 돌려줍니다. | LayoutManager | ||
![]() | isPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
| Object | |
![]() | propertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
| Object | |
![]() | removeEventListener (type:String , listener:Function , useCapture:Boolean = false):void
EventDispatcher object로부터 listener를 삭제합니다.
| EventDispatcher | |
![]() | setPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
| Object | |
![]() | toString ():String
지정된 object의 string 표현을 돌려줍니다.
| Object | |
| validateClient (target:ILayoutManagerClient , skipDisplayList:Boolean = false):void
property가 변경되어도, 일반적으로는 컴퍼넌트는 그 변경을 곧바로 적용하지 않습니다.
| LayoutManager | ||
| validateNow ():void
property가 변경되어도, 일반적으로는 컴퍼넌트는 그 변경을 곧바로 적용하지 않습니다.
| LayoutManager | ||
![]() | valueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
| Object | |
![]() | willTrigger (type:String ):Boolean
지정된 event 타입에 대해, 이 EventDispatcher object 또는 그 조상에게 event listener가 등록되어 있는지 어떤지를 확인합니다.
| EventDispatcher | |
| usePhasedInstantiation | property |
usePhasedInstantiation:Boolean [read-write]
LayoutManager 로 단계와 단계의 사이에서의 화면 갱신이 허가되고 있는지 어떤지를 나타내는 플래그입니다. true 의 경우, 화면 마다 측정 및 레이아웃 각각의 단계를 합니다. 컴퍼넌트의 모든 property가 검증될 때까지, 모든 컴퍼넌트의 validateProperties() 및 commitProperties() Methods가 불려 갑니다. 검증이 완료하면, 화면이 갱신됩니다.
다음에, 모든 컴퍼넌트의 측정이 완료할 때까지, 모든 컴퍼넌트의 validateSize() 및 measure() Methods가 불려 갑니다. 측정이 완료하면, 화면이 다시 갱신됩니다.
마지막으로, 모든 컴퍼넌트의 검증이 완료할 때까지, 모든 컴퍼넌트의 validateDisplayList() 및 updateDisplayList() Methods가 불려 갑니다. 검증이 완료하면, 화면이 다시 갱신됩니다. 1 개의 단계의 검증으로, 전의 단계가 무효화되면, LayoutManager 가 처음부터 다시 합니다. 다수의 컴퍼넌트를 작성해 초기화하는 경우에는, 보다 효율적입니다. 체제가, 이 property를 설정합니다.
false 의 경우, 화면이 갱신되기 전에 3 개 모든 단계가 완료했습니다.
public function get usePhasedInstantiation():Boolean
public function set usePhasedInstantiation(value:Boolean ):void
| LayoutManager | () | constructor |
public 함수 LayoutManager()constructor .
| getInstance | () | Methods |
public static function getInstance():LayoutManager 이 싱글 톤 클래스의 유일한 인스턴스를 돌려줍니다. 인스턴스가 존재하지 않는 경우는, 작성합니다.
반환값LayoutManager |
| invalidateDisplayList | () | Methods |
public function invalidateDisplayList(obj:ILayoutManagerClient ):void 컴퍼넌트가 변경되어 컴퍼넌트의 레이아웃이나 비주얼의 변경이 필요한 경우에 불려 갑니다. 이 경우, 컴퍼넌트의 크기가 변경되어 있지 않아도, 컴퍼넌트의 레이아웃 알고리즘을 실행할 필요가 있습니다. 예를 들어, 새로운 아이 컴퍼넌트가 추가되었을 경우, 스타일 property가 변경되었을 경우, 컴퍼넌트의 부모에 의해 컴퍼넌트에 새로운 크기가 지정되었을 경우등이 있습니다.
Parametersobj:ILayoutManagerClient — 변경된 object입니다.
|
| invalidateProperties | () | Methods |
public function invalidateProperties(obj:ILayoutManagerClient ):void
validateProperties() Methods가 불려 가는 것을 대기하고 있는 컴퍼넌트의 리스트에 object를 추가합니다. 컴퍼넌트는, property가 변경되었을 때에 이 Methods를 호출할 필요가 있습니다. 통상, property 설정 Methods에서는, 신규의 값을 일시 변수에 포함해,invalidateProperties() Methods를 호출해, 다음에 이 신규의 값이 실제로 컴퍼넌트나 컴퍼넌트의 아이에게 적용될 때 validateProperties() 및 commitProperties() Methods가 불려 가도록(듯이) 합니다. 이 순서의 이점은, 복수의 property를 한 번으로 변경해, 이러한 property를 서로 조작할 수 있도록(듯이) 하거나 property가 적용되거나 또는 특정의 차례로 적용될 때 코드가 반복해지도록 할 수 있는 것입니다. 이 순서를 사용하면, 가장 효율적으로 신규의 property치를 적용할 수 있습니다.
obj:ILayoutManagerClient — property가 변경된 object.
|
| invalidateSize | () | Methods |
public function invalidateSize(obj:ILayoutManagerClient ):void
validateSize() Methods가 불려 가는 것을 대기하고 있는 컴퍼넌트의 리스트에 object를 추가합니다. object의 크기가 변화했을 때에 불려 갑니다.
object의 크기는, 다음의 2 개의 이유에 의해 변화하는 경우가 있습니다.
label 가 변경됩니다. minWidth,minHeight,explicitWidth,explicitHeight,maxWidth, 또는 maxHeight. 전자의 경우는, object의 값수를 재계산할 필요가 있습니다. 후자의 경우는, 새로운 object의 크기를 알 수 있고 있으므로, 값수를 재계산할 필요는 없습니다. 다만, object의 부모를 재측정해 재레이아웃 할 필요가 있습니다.
Parametersobj:ILayoutManagerClient — 크기가 변경된 object.
|
| isInvalid | () | Methods |
public function isInvalid():Boolean
검증이 필요한 컴퍼넌트가 있는 경우는 true 를 돌려줍니다. 모든 컴퍼넌트의 검증이 완료하고 있는 경우는 false 를 돌려줍니다.
Boolean |
| validateClient | () | Methods |
public function validateClient(target:ILayoutManagerClient , skipDisplayList:Boolean = false):void property가 변경되어도, 일반적으로는 컴퍼넌트는 그 변경을 곧바로 적용하지 않습니다. 통상, 컴퍼넌트는 LayoutManager 의 무효화 Methods를 호출해, property를 다음에 적용합니다. 설정한 실제의 property는 곧바로 읽어낼 수가 있습니다만, property가 컴퍼넌트내의 다른 property, 혹은 컴퍼넌트의 아이나 부모에게 영향을 주는 것인 경우, 이러한 다른 property는 곧바로는 갱신되지 않습니다.
값이 갱신되는 것을 프로텍션하려면 ,validateClient() Methods를 호출합니다. 이 Methods는, 네스트 레벨이 타겟 컴퍼넌트 이상인 모든 컴퍼넌트의 모든 property를 갱신하고 나서 종료합니다. 이 Methods를 호출하면 계산의 부하가 크기 때문에, 이 Methods는 필요한 경우에게만 사용해 주세요.
target:ILayoutManagerClient — 여기에게 건네지는 컴퍼넌트는, 어느 컴퍼넌트를 검증할 필요가 있는지를 테스트하기 위해서 사용됩니다. 이 컴퍼넌트에 의해 포함할 수 있던 모든 컴퍼넌트의 validateProperties(),commitProperties(),validateSize(),measure(),validateDisplayList(), 및 updateDisplayList() Methods가 불려 갑니다.
|
|
skipDisplayList:Boolean (default = false) — true 의 경우,validateDisplayList() 및 updateDisplayList() Methods를 호출하지 않습니다.
|
| validateNow | () | Methods |
public function validateNow():void
property가 변경되어도, 일반적으로는 컴퍼넌트는 그 변경을 곧바로 적용하지 않습니다. 통상, 컴퍼넌트는 LayoutManager 의 무효화 Methods를 호출해, property를 다음에 적용합니다. 설정한 실제의 property는 곧바로 읽어낼 수가 있습니다만, property가 컴퍼넌트내의 다른 property, 혹은 컴퍼넌트의 아이나 부모에게 영향을 주는 것인 경우, 이러한 다른 property는 곧바로는 갱신되지 않습니다. 값이 갱신되는 것을 프로텍션하려면 ,validateNow() Methods를 호출합니다. 이 Methods는, 컴퍼넌트의 모든 property를 갱신하고 나서 종료합니다. 이 Methods를 호출하면 계산의 부하가 크기 때문에, 이 Methods는 필요한 경우에게만 사용해 주세요.
코멘트가 추가되었을 경우, 메일로 받기. | 코멘트 리포트
현재의 페이지: http://flexdocs.kr/docs/flex2/langref/mx/managers/LayoutManager.html