AS3- 对于数组中的每个元素,传递一个具有不同参数的单击事件



在操作脚本 3 中,我有一个整数对象数组,我将其传递给 TileList 控件作为数据提供程序。我希望每个单击的数字都可以调用具有唯一参数的函数,因此对于列表中的每个图像,要调用的函数都有唯一的 String 参数值。如何在操作脚本中实现此目的?

对象数组如下所示:

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

"磁贴列表"控件:

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

结果是这样的:

1 2 3 4
5 6 7 

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

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

传递的消息示例是(单击1:您好| 点击2:威尔科门)等。

谢谢

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

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

TileList类具有selectedItem属性。selectedItem是一个对象。因此,很容易获取data变量的值。

tile_list.selectedItem.data

添加组合框 使用"关闭"标记更改事件侦听器处理程序,并像以前一样添加数据提供程序标记 laso。

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

并使用附加参数创建数组集合

[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);
}

最新更新