-1

2 つの異なるテスト ドロップダウンを同じ方法で動作させようとしています。

<mx:HBox x="10" y="50" >
    <mx:PopUpMenuButton id="associativeDD"/>
</mx:HBox>
<mx:HBox x="100" y="50" >
    <mx:PopUpMenuButton id="indexedDD"/>
</mx:HBox>

ただし、actionscript を使用して dataProvider 値を割り当てると、連想配列を使用するかインデックス付き配列を使用するかによって、2 つの異なる結果が得られるようです。

var arr1:Array = new Array();
arr1['1'] = ({label: "test1"});
arr1['2'] = ({label: "test2"});
arr1['3'] = ({label: "test3"});
associativeDD.dataProvider = arr1;

var arr2:Array = new Array();
 arr2.push({label: "test1"});
 arr2.push({label: "test2"});
 arr2.push({label: "test3"});
indexedDD.dataProvider = arr2;

これは次のようになります。

フレックスドロップダウン

連想配列を使用して dataProvider を割り当てたものの先頭に空の場所がありますが、これを「適切に」行う方法はありますか?

4

1 に答える 1

0

Actionscript 配列はゼロベースでスパースです。つまり、配列を作成し、最初の要素を index1で挿入すると、配列のサイズは に2なり、要素のインデックス0は になりますundefined

0したがって、同じ結果を得るには、連想配列の場合はインデックスから始める必要があります。

于 2016-07-22T07:29:40.673 に答える