2009-07-15 7 views
1

UIComponent에서 파생 된 사용자 지정 구성 요소가 있습니다. 나는 그들이 사용자 정의 모양을 가지고 updateDisplayList을 오버로드. 이러한 사용자 지정 구성 요소를 레이아웃하는 레이아웃을 만들었지 만 올바르게 배치하려면 사용자 지정 구성 요소 너비, 높이를 알아야합니다. 그것들은 동적으로 생성됩니다. 모두 (creationCompleted 이벤트가 발생했습니다), 난 그들을 밖으로 레이아웃 해보려고하지만 너비/높이 속성은 여전히 ​​0입니다. 나는 또한 레이아웃 과정 전에 캔버스에 그들을 추가하려고했습니다.동적으로 생성 된 사용자 지정 uicomponent 너비 가져 오기

그래서 내 질문은 동적으로 배치 된 사용자 지정 UIComponent를 만들고 너비와 높이를 알 수 있습니다.

감사


편집 :

내가 너비와 높이 (내부 $ 폭과 $ 높이 필드를 사용하여) 설정할 수 mx_internal 네임 스페이스의 사용으로

, 그리고이 작동 것 같습니다 . 하지만 그렇게 깨끗한/좋은 해결책.

답변

1

당신이, 당신은 아마 당신이 다른 사람의 사이에서, 측정() 메소드를 구현하고 있는지 확인하는 것이 좋습니다 오히려 그 서브 클래스 중 하나에서보다 UIComponent를 상속하는 경우. 자신의 UIComponent를 구현하는 방법에 대한 자세한 내용은 여기를 플렉스 문서를 체크 아웃 - 여기에서 읽을 수있는 정보의 좋은 무리가있다, 그러나 당신이 직접 UIComponent에서 파생하는 경우 당신은 아마 알아야 할 모든 물건 :

http://www.adobe.com/livedocs/flex/3/html/help.html?content=ascomponents_advanced_3.html

희망이 있습니다. 작은 코드를 게시 해 볼 수도 있습니다. 계속 진행하기 위해 좀 더 구체적으로 설명 할 수 있습니다. 그러나 기회는 당신이 그 값을 검색하기 위해 있어야하는 무언가를 구현하는 것일뿐입니다. (그리고 당신의 본능은 정확합니다 - 당신이 원하는 것을 얻기 위해 mx_internal을 파고 들지 않아야합니다.)

+0

또한 사용자 지정 구성 요소를 추가 할 때 차이가 발생할 수 있습니다. createChildren 메소드, 또는 updateDisplayList 메소드 또는 MXML에 추가되고 있습니까? 그러나 문제는 아이들에게 "조치"가 없다는 것입니다. – Glenn

0

어쩌면이게 효과가 있을까요?

component.getExplicitOrMeasuredWidth() 
component.getExplicitOrMeasuredHeight() 
+0

이것은 명시 적으로 설정되거나 측정 된 너비를 반환하지만 둘 다 0입니다. $ width/$ height 필드에만 생성 및 그리기 후에 유용한 내용이 들어 있습니다. 이러한 필드를 어떻게 든 사용하거나 컴포넌트가 width/height/measuredWidth .. 필드에 값을 쓰도록 할 수 있습니까? – spupek

+0

mx_internal 네임 스페이스를 사용하여 너비와 높이를 설정할 수 있으며 작동하는 것처럼 보입니다. 하지만 그렇게 깨끗한/좋은 해결책. – spupek