2011-02-03 3 views
14

내가하고 싶은 부분은 MXML 컴포넌트를 만든 다음 MXML을 통해 확장하여 더 많은 자식을 가진 새로운 컴포넌트를 생성하는 것입니다. 환언 MXML을 통해 MXML 사용자 정의 컴포넌트 확장하기

에서 는

<?xml version="1.0" encoding="utf-8"?> 
<s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> 

    <s:Button id="b1" label="button1"/> 
</s:BorderContainer> 

bc.mxml 요소를 생성 한 후 별도의 컴포넌트 mc.mxml

<?xml version="1.0" encoding="utf-8"?> 
<borderContainerX:bc xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:borderContainerX="borderContainerX.*"> 

    <s:Button id="b2" y="100" label="button2"/> 
</borderContainerX:bc> 

으로 연장되고 버튼 2 성분을 얻는다.

나는이 (2, 3)를 달성하기 위해 다양한이 불가능하거나 방법에 대한 스레드 (1) 또는 해결에 본 적이 우리가 있다면 무엇인가 플렉스 4의 출현으로 변경되었는지 궁금되었거나 여전히이 해결 방법으로 붙어있어 스레드 3의 마지막 회신은 Flex 4에서이 모든 것을 수정하는 것을 암시하는 것처럼 보입니까?

플렉스 4에서
+0

이유는 MXML과 액션의 혼합을 사용하지 스크립트? 두 번째 구성 요소의 createChildren() 메서드에서 두 번째 버튼을 만드시겠습니까? – JeffryHouser

+3

. 순수한 mxml이 여전히 작동하지 않는다는 것에 놀랐습니다. 솔직히 mxml을 통해 구성 요소를 설정하는 것이 좋기 때문에 불가능하다고 생각합니다. –

답변

11

,이에 대한 주석에 표시됩니다 이러한 재정의 가능한 구현의

하나의 부모 클래스에 이미 정의 된 아이들을 보호하기 위해 귀하의 "mxmlContent"속성 setter를 재정의해야합니다 블로그 항목

빠른 팁 (플렉스 4) : 안녕 템플릿 - 안녕하세요 mxmlContent

http://www.websector.de/blog/2009/10/02/quick-tip-flex-4-goodbye-templates-hello-mxmlcontent/

+0

또한 Flex 4에서는 다음과 같은 유형의 작업을 수행하도록 정의 된 여러 내용 영역이있는 스킨을 사용하는 것이 훨씬 더 우아합니다. * 여러 내용 영역이있는 Flex 4 컨테이너 작성 * http://saturnboy.com/2010/07/multiple -content-area-containers/ – JabbyPanda

+0

mxmlContent 설정을 포함하여이 방법을 시도했지만 나에게 적합하지 않습니다. – Dan

관련 문제