This page was saved using jaction on 2006-09-04 8:33:49.
Address: http://flexdocs.kr/docs/flex2/langref/mx/managers/LayoutManager.html
Title: mx.managers.LayoutManager (Flex™ 2 레퍼런스 가이드)  •  Size: 44419
Packagemx.managers
Classpublic class LayoutManager
InheritanceLayoutManager Inheritance EventDispatcher Inheritance Object

LayoutManager 는, Flex 의 측정 및 레이아웃 순서의 배후에 있는 엔진입니다. 레이아웃은, 처리, 측정, 및 레이아웃의 3 단계에서 실행됩니다.

각 단계는 각각 독립하고 있어, 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 에 액세스 할 수도 있습니다.



Public property
 property정의
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
  usePhasedInstantiation : Boolean
LayoutManager 로 단계와 단계의 사이에서의 화면 갱신이 허가되고 있는지 어떤지를 나타내는 플래그입니다.
LayoutManager
Public Methods
 Methods정의
  LayoutManager ()
constructor   .
LayoutManager
 InheritedaddEventListener (type:String , listener:Function , useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
event listener objects를 EventDispatcher object에 등록해, listener가 이벤트의 통지를 받도록(듯이) 합니다.
EventDispatcher
 InheriteddispatchEvent (event:Event ):Boolean
이벤트를 event 플로우(flow)에 dispatch합니다.
EventDispatcher
  getInstance ():LayoutManager
[static] 이 싱글 톤 클래스의 유일한 인스턴스를 돌려줍니다. 인스턴스가 존재하지 않는 경우는, 작성합니다.
LayoutManager
 InheritedhasEventListener (type:String ):Boolean
EventDispatcher object에, 특정의 event 타입에 대해서 등록된 listener가 있을지 어떨지를 확인합니다.
EventDispatcher
 InheritedhasOwnProperty (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
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedremoveEventListener (type:String , listener:Function , useCapture:Boolean = false):void
EventDispatcher object로부터 listener를 삭제합니다.
EventDispatcher
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
  validateClient (target:ILayoutManagerClient , skipDisplayList:Boolean = false):void
property가 변경되어도, 일반적으로는 컴퍼넌트는 그 변경을 곧바로 적용하지 않습니다.
LayoutManager
  validateNow ():void
property가 변경되어도, 일반적으로는 컴퍼넌트는 그 변경을 곧바로 적용하지 않습니다.
LayoutManager
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
 InheritedwillTrigger (type:String ):Boolean
지정된 event 타입에 대해, 이 EventDispatcher object 또는 그 조상에게 event listener가 등록되어 있는지 어떤지를 확인합니다.
EventDispatcher
property의 상세
usePhasedInstantiationproperty
usePhasedInstantiation:Boolean   [read-write]

LayoutManager 로 단계와 단계의 사이에서의 화면 갱신이 허가되고 있는지 어떤지를 나타내는 플래그입니다. true 의 경우, 화면 마다 측정 및 레이아웃 각각의 단계를 합니다. 컴퍼넌트의 모든 property가 검증될 때까지, 모든 컴퍼넌트의 validateProperties()commitProperties() Methods가 불려 갑니다. 검증이 완료하면, 화면이 갱신됩니다.

다음에, 모든 컴퍼넌트의 측정이 완료할 때까지, 모든 컴퍼넌트의 validateSize()measure() Methods가 불려 갑니다. 측정이 완료하면, 화면이 다시 갱신됩니다.

마지막으로, 모든 컴퍼넌트의 검증이 완료할 때까지, 모든 컴퍼넌트의 validateDisplayList()updateDisplayList() Methods가 불려 갑니다. 검증이 완료하면, 화면이 다시 갱신됩니다. 1 개의 단계의 검증으로, 전의 단계가 무효화되면, LayoutManager 가 처음부터 다시 합니다. 다수의 컴퍼넌트를 작성해 초기화하는 경우에는, 보다 효율적입니다. 체제가, 이 property를 설정합니다.

false 의 경우, 화면이 갱신되기 전에 3 개 모든 단계가 완료했습니다.

Implements
    public function get usePhasedInstantiation():Boolean
    public function set usePhasedInstantiation(value:Boolean ):void
constructor    의 상세
LayoutManager()constructor   
public 함수 LayoutManager()

constructor   .

Methods의 상세
getInstance()Methods
public static function getInstance():LayoutManager

이 싱글 톤 클래스의 유일한 인스턴스를 돌려줍니다. 인스턴스가 존재하지 않는 경우는, 작성합니다.

반환값
LayoutManager
invalidateDisplayList()Methods 
public function invalidateDisplayList(obj:ILayoutManagerClient ):void

컴퍼넌트가 변경되어 컴퍼넌트의 레이아웃이나 비주얼의 변경이 필요한 경우에 불려 갑니다. 이 경우, 컴퍼넌트의 크기가 변경되어 있지 않아도, 컴퍼넌트의 레이아웃 알고리즘을 실행할 필요가 있습니다. 예를 들어, 새로운 아이 컴퍼넌트가 추가되었을 경우, 스타일 property가 변경되었을 경우, 컴퍼넌트의 부모에 의해 컴퍼넌트에 새로운 크기가 지정되었을 경우등이 있습니다.

Parameters
obj: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치를 적용할 수 있습니다.

Parameters
obj:ILayoutManagerClient — property가 변경된 object.
invalidateSize()Methods 
public function invalidateSize(obj:ILayoutManagerClient ):void

validateSize() Methods가 불려 가는 것을 대기하고 있는 컴퍼넌트의 리스트에 object를 추가합니다. object의 크기가 변화했을 때에 불려 갑니다.

object의 크기는, 다음의 2 개의 이유에 의해 변화하는 경우가 있습니다.

  1. object의 내용이 변화했다. 예를 들어, label가 변경되면 버튼의 label 가 변경됩니다.
  2. 스크립트가, 다음의 property의 어느쪽이든을 명시적으로 변경했다. minWidth,minHeight,explicitWidth,explicitHeight,maxWidth, 또는 maxHeight.

전자의 경우는, object의 값수를 재계산할 필요가 있습니다. 후자의 경우는, 새로운 object의 크기를 알 수 있고 있으므로, 값수를 재계산할 필요는 없습니다. 다만, object의 부모를 재측정해 재레이아웃 할 필요가 있습니다.

Parameters
obj: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는 필요한 경우에게만 사용해 주세요.

Parameters
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