2012-10-13 4 views
0

매우 복잡하고 생성이 느리기 때문에 mx Window 구성 요소를 풀링하고 싶습니다. 그러나 풀링 된 객체 내의 addElement가 호출 될 때 문제가있다. 그래서, 시각적 요소가 그 라인 이후에 생성되지 않는다고 가정합니다 : new myWindowsClass()?Pooling mx Window

백그라운드에서 사용자 지정 Window 구성 요소를 만들고 나중에 사용하는 방법은 무엇입니까?

답변

0

백그라운드에서 사용자 지정 Window 구성 요소를 만들고 나중에 사용하는 방법은 무엇입니까?

일반적인 개념은 Factory 클래스를 사용하는 것입니다. Factory 클래스는 구성 요소의 인스턴스를 만들고 관리합니다. Flex Framework에는 심지어 ClassFactory이 포함되어 있습니다. 사용 된 클래스와 사용되지 않은 클래스를 추적하기 위해 확장하거나 직접 만들 수 있습니다. 그런 다음 새 인스턴스가 요청 될 때마다 사용되지 않은 인스턴스가 있는지 확인하고 제공하십시오. 그렇지 않으면; 하나 만들고 그것을 제공하십시오.

Flextras 캘린더에서 이와 같은 기술을 사용하여 달을 변경하거나 주, 월, 일보기간에 이동하는 요일을 처리합니다. 또한 모바일 게임에서이 기술을 사용하여 게임 보드를 만드는 데 사용되는 BitMapData를 처리합니다.

+0

ClassFactory도 모든 시각적 요소가있는 완전한 클래스를 만들지 않습니다 ... 새 인스턴스가 만들어지면 addElement가 호출 될 때 여전히 오류가 발생합니다. 이 경우 addElement는 생성 된 인스턴스 안에있는 Group에 컴포넌트를 추가하는 것입니다. addElement를 작동 시키려면 DisplayList에 인스턴스를 추가해야합니까? – Nemi

+0

@ 네미 "전체 수업"이 무슨 뜻인지 잘 모르겠습니다. ClassFactory는 객체의 인스턴스를 생성하고 반환합니다. new 키워드를 사용하여 클래스를 만드는 것만 큼 차이는 없습니다 (캡슐화 된 것은 제외). 그러나 UIComponent는 스테이지에 추가 된 상위 요소에 추가 될 때까지 Lifecycle 생성 프로세스를 거치지 않습니다. UIComponent의 코드에 따라 시각적 자식은이 라이프 사이클 프로세스가 완료 될 때까지 생성되지 않을 가능성이 높습니다. addElement는 DisplayList에 무언가를 추가합니다. 귀하의 수신 또는 어떤 문맥에서 어떤 오류가 명확하지 않습니다. – JeffryHouser

+0

감사합니다. 오류는 간단합니다. addElement를 null 인 Group에 추가 할 수 없습니다 (아직 스테이지에 추가되지 않았기 때문에?). 따라서, 스테이지에 먼저 추가하지 않고 모든 시각적 요소 (나중에 사용하기 위해)로 MXML 구성 요소를 초기화하는 방법은 없습니다. – Nemi