AS3-为数组中的每个元素传递一个具有不同参数的点击事件

AS3- For every element in the array pass a click event with different paramters

在动作脚本 3 中,我有一个整数对象数组,我将其作为数据提供者传递给 TileList 控件。我希望点击的每个数字都能调用具有唯一参数的函数,因此对于列表中的每个图像,要调用的函数都有唯一的字符串参数值。如何在 Action Script 中实现此目的?

对象数组如下:

private var nums:Array = [
    {label:"1"},
    {label:"2"},
    {label:"3"},
    {label:"5"},
    {label:"6"},
    {label:"7"}
];

TileList 控件:

<mx:TileList >
    <mx:dataProvider>
        {nums}
    </mx:dataProvider>
</mx:TileList>

结果是这样的:

1 2 3 4
5 6 7 

对于每个点击的数字,我想将以下函数与一条消息绑定:

function alertMsg(var message:String){
    Alert.show(message);
}

传递的消息示例是(点击 1:你好 | 点击 2:Wilkommen)等

谢谢

nums 数组中的每个元素添加新参数:

{label: "1", data:"Hello"},
{label: "2", data:"Wilkommen"}
...

TileListclass有一个selectedItem属性。 selectedItem 是一个对象。所以很容易得到data变量的值

tile_list.selectedItem.data

使用 'close' 标记添加 Combobox 更改事件侦听器处理程序,并像您一样添加 dataprovider 标记 laso。

<mx:ComboBox dataProvider="{nums}" close="getData(event);">         
</mx:ComboBox>

并创建一个带有附加参数的 Arraycollection

[Bindable]
private var nums:ArrayCollection = new ArrayCollection( [
    {label:"1", data:"One"},
    {label:"2", data:"Two"},
    {label:"3", data:"Three"}   
]);

然后实现如下的detData(event)函数

private function getData(e:DropdownEvent):void{             
    Alert.show(e.currentTarget.selectedItem.data);
}