Мне нужна твоя помощь в списке действий. - PullRequest
2 голосов
/ 19 июля 2011
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, и значение по умолчанию отсутствует. at Untitled_fla :: MainTimeline / action () "

Как я мог решить эту проблему?

Ответы [ 3 ]

1 голос
/ 19 июля 2011

Я не думаю, что у List есть данные о свойствах. Я думаю, вы хотите получить выбранный предмет. пожалуйста попробуйте:

urlLoc = e.target.selectedItem.ben;
0 голосов
/ 20 июля 2011

У вас возникла проблема с прослушивателем Object.Измените обработчик события Event.CHANGE вместо "MouseEvent.CLICK".

list.addEventListener(Event.CHANGE, action);
0 голосов
/ 19 июля 2011

Кажется, что событие кнопки пузырится, хотя список.Вы хотите, чтобы прослушиватель событий срабатывал на кнопках вверх и вниз или только на самом списке?

Вы можете попробовать:

function action(e:MouseEvent):void{
    if(evt.target is List) {
        urlLoc = e.target.data.ben;
        trace(urlLoc);
    }
}
...