我在List box actionscript 3.0中需要你的帮助

时间:2011-07-19 10:03:29

标签: actionscript-3 flash-cs5

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()“

我怎么能解决这个问题?

3 个答案:

答案 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);