import fl.data.DataProvider;
import fl.controls.List;
var urlLoc:String = new String();
var dp:DataProvider = new DataProvider();
for (var i:uint = 1; i<=5; i++){
dp.addItem( { label:"Channel" +i ,ben : "musicList"+i+".xml"} );
}
var list:List = new List();
list.dataProvider = dp;
addChild(list);
list.setSize(140,60);
list.addEventListener(MouseEvent.CLICK, action);
function action(e:MouseEvent):void{
urlLoc = e.target.data.ben;
trace(urlLoc);
}
它工作正常,当我点击向下和向上按钮时它会给我带来错误。
“ReferenceError:错误#1069:在fl.controls.BaseButton上找不到属性数据,并且没有默认值。 在Untitled_fla :: MainTimeline / action()“
我怎么能解决这个问题?
答案 0 :(得分:1)
我认为List没有属性数据。我想你想得到所选的项目。请尝试:
urlLoc = e.target.selectedItem.ben;
答案 1 :(得分:0)
看起来按钮事件正在通过列表冒泡。您是否希望事件监听器在上下按钮上或仅在列表本身上触发?
你可以尝试:
function action(e:MouseEvent):void{
if(evt.target is List) {
urlLoc = e.target.data.ben;
trace(urlLoc);
}
}
答案 2 :(得分:0)
U使侦听器对象出现问题。
更改事件处理程序Event.CHANGE
而不是“MouseEvent.CLICK
”。
list.addEventListener(Event.CHANGE, action);