0

上記のコードでエラーが発生しました、

エラー:「mxmlContentFactory」のデフォルトのプロパティ値として機能する「FormItem」の子要素は連続している必要があります。

<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>

フレックス3を4に移行しているので、ここで変更を加える必要があるかどうかわかりません。

<mx:RadioButton to <s:RadioButtonまた、次のエラー を変更しようとすると、コンポーネントタイプspark.component.RadioButtonの属性「labelPlacement」を解決できませんが表示されます。

4

1 に答える 1

0

レイアウトや他のすべてのフォーマットは別として、ここでの問題は、mxmlオブジェクトのデフォルト値(コンポーネントごとに異なるプロパティ)を他のプロパティと混合していることです。すべてのmxmlコンポーネントにはデフォルトのプロパティがあります。デフォルトのプロパティでは、レイアウトを設定するときのように、オブジェクトの前にプロパティ名を付ける必要はありません。

あなたの子オブジェクトを分解してみましょう<s:FormItem />

  • 最初の子は表示オブジェクト<s:Label />です。--このラベルはフォームアイテムの子として表示されるため、「mxmlContentFactory」と呼ばれるデフォルトのプロパティを使用しています。

  • 2番目の子は<s:layout>プロパティです。このタグは、プロパティ<s:FormItem />を設定するように指示していlayoutます...この場合は<s:HorizontalLayout />。デフォルト以外のレイアウトを使用することはおそらくここでは問題ありませんが、それは間違いなくエラーメッセージの原因ではありません。

  • 3番目の子は別の表示オブジェクト<s:RadioButton />です。この子は、最初の子が使用しているデフォルトのプロパティ(mxmlContentFactory)の一部であると想定されています。

エラーメッセージには、「デフォルトのプロパティ」に使用されることを意図したアイテムが連続している必要があることが示されています。したがって、2つの「デフォルト」プロパティの中央にレイアウトプロパティを設定すると、このエラーが発生します。

解決策は簡単です。プロパティ宣言(など<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>

このエラーは、Flex3またはFlex4で発生します。繰り返しになりますが、のHorizontalLayout内部を使用しようとしているという事実とは関係ありませんFormItem

于 2013-01-07T18:59:40.380 に答える