在动作脚本3中,我有一个整数对象数组,我将它作为数据提供者传递给TileList控件。我希望每个单击的数字都可以调用具有唯一参数的函数,因此对于列表中的每个图像,要调用的函数都有唯一的String参数值。如何在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
对于每个点击的号码,我想用unqiue消息绑定下面的函数:
function alertMsg(var message:String){
Alert.show(message);
}
传递的消息示例(点击1: Hello there | clicked 2: Wilkommen )等。
由于
答案 0 :(得分:0)
将新参数添加到nums
数组中的每个元素:
{label: "1", data:"Hello"},
{label: "2", data:"Wilkommen"}
...
TileList
类具有selectedItem
属性。 selectedItem
是一个对象。因此很容易获得data
变量的值。
tile_list.selectedItem.data
答案 1 :(得分:0)
使用'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);
}