2013-01-07 2 views
0

나는플렉스 4 하위 요소 오류

오류, 위의 코드에서 오류가 발생합니다. 플렉스 3 사에 마이그레이션

<s:Form id="bxPrePaidTypeAdvanced" width="100%"> 
    <s:layout> 
    <s:VerticalLayout paddingTop="0" paddingLeft="0" paddingRight="0" paddingBottom="0"/> 
    </s:layout> 

    <s:FormItem width="0" label="Form Item:"> 
    <s:Label text="label text" /> 
    <s:layout> 
    <s:HorizontalLayout paddingLeft="{(-1)*(rbPerDay.width + 16)}" gap="16"/> 
    </s:layout> 

    <mx:RadioButton groupName="prePaidAdvanced" 
id="rbPerDay" 
label="{resourceManager.getString('locale','perDay')}" 
labelPlacement="left" 
change="rbPerDay_changeHandler(event)"/> 

<mx:ComboBox id="cbDueDay" width="80" dataProvider="{daysArray}"/> 
</s:FormItem> 

임 그래서 내가 여기에 일부 내용을 변경해야 할 경우 잘 모릅니다.

그리고 내가 <mx:RadioButton to <s:RadioButton을 변경하려고하면 또 다른 한가지는, 다음과 같은 오류가 구성 요소 유형 "는 labelPlacement을"속성

+1

'Form' (FormLayout)의 기본 레이아웃을 변경한다고 생각하지 않습니다. 그게 네 잘못이야. 다른 오류에 관해서 : 오류 상태로, 그 속성이 존재하지 않습니다. – RIAstar

+0

그래서 어떻게 패딩을 바꿀 수 있습니까? 이 아닌 경우? –

+0

'layout' 속성을 사용할 수는 있지만, 대신에 [FormLayout] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/layouts/FormLayout.html)을 사용하십시오. 'VerticalLayout'. – RIAstar

답변

0

레이아웃 따로 다른 모든 형식 물건, 여기에 문제를 spark.component.RadioButton를 해결할 수 표시 mxml 객체의 기본값 (구성 요소마다 구성되는 속성)과 다른 속성을 혼합하는 것입니다. 모든 mxml 구성 요소에는 기본 속성이 있습니다. 기본 속성을 사용하면 레이아웃을 설정할 때처럼 개체에 속성 이름 접두사가 필요하지 않습니다.

하는의이 <s:FormItem />의 자식 개체 떨어져 휴식 보자

  • 첫째 자녀하면 표시 객체와 <s:Label />이다 -이 라벨 그냥 양식 항목의 자식으로 나타나기 때문에, 그것은 기본 속성을 사용하고 이것은 "mxmlContentFactory"라고 불린다.

  • 두 번째 자식은 <s:layout> 속성입니다. 이 태그는 <s:FormItem />layout 속성 ...이 경우에는 <s:HorizontalLayout />으로 설정하도록 지정합니다. 기본값이 아닌 레이아웃을 사용하면 오류 메시지가 발생하지 않습니다.

  • 세 번째 자식이 다른 표시 개체 인 <s:RadioButton />입니다. 이 자식은 첫 번째 자식이 사용하는 기본 속성 (mxmlContentFactory)의 일부로 간주됩니다.

오류 메시지에 "기본 속성"에 사용하기위한 항목이 인접해야한다고 나와 있습니다. 따라서 두 개의 "기본"속성 중간에 layout 속성을 설정하면이 오류가 발생합니다.

해결책은 간단하다 : 그들은 "기본 속성"에서 사용하는 값에 방해가되지 않도록 시작 또는 양식 항목 태그의 한쪽 끝을 (<s:layout>을 같은) 모든 속성 선언 이동 :

<s:FormItem width="0" label="Form Item:"> 
    <s:layout> 
     <s:HorizontalLayout paddingLeft="{(-1)*(rbPerDay.width + 16)}" gap="16"/> 
    </s:layout> 

    <s:Label text="label text" /> 
    <mx:RadioButton groupName="prePaidAdvanced" id="rbPerDay" label="{resourceManager.getString('locale','perDay')}" labelPlacement="left" change="rbPerDay_changeHandler(event)"/> 

    <mx:ComboBox id="cbDueDay" width="80" dataProvider="{daysArray}"/> 
<s:/FormItem> 

이 오류는 Flex 3 또는 Flex 4에서 발생합니다. 다시 말해서 FormItem 안에 HorizontalLayout을 사용하려고한다는 사실과 아무런 관련이 없습니다.

+0

그 도움을 얻으려면 트릭을 써야합니다. –