-1

我试图让两个不同的测试下拉菜单以相同的方式工作。

<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 值时,我似乎得到了两种不同的结果,具体取决于我使用的是关联数组还是索引数组。

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 数组是从零开始的并且是稀疏的。这意味着,如果您创建一个数组并插入第一个具有 index 的元素1,则该数组的大小将为 ,2而具有索引的元素0将为undefined

因此,要获得相同的结果,您需要0在关联数组的情况下从索引开始。

于 2016-07-22T07:29:40.673 回答