PDA

Просмотр полной версии : Как перерисовать List, после изменения его DataProvider


zexis
08.09.2011, 01:49
Есть следующий код приведенный ниже.
В этом коде создается элемент List и кнопка Button. По нажатию на кнопку меняется значение одного из элементов DataProvider.
Но после нажатия кнопки Button, пока не кликнешь мышью на List, новое значение в списке не перерисуется.
Вопрос.
Как заставить List перерисовать новое значение в списке сразу же после редактирования DataProvider ?


import fl.controls.List;
import fl.data.DataProvider;
import fl.events.ListEvent;
import fl.controls.Button;

var myDataProvider:DataProvider = new DataProvider();
myDataProvider.addItem({label:"item 1"});
myDataProvider.addItem({label:"item 2"});
myDataProvider.addItem({label:"item 3"});

var myList:List = new List();
myList.dataProvider = myDataProvider;
addChild(myList);

var bt:Button=new Button();
bt.x=200;
bt.y=200;
bt.addEventListener(MouseEvent.CLICK,bt_click);
addChild(bt);

function bt_click(e:MouseEvent):void{
var ob:Object;
ob=myDataProvider.getItemAt(1);
ob.label="Edit label";
}

mayakwd
08.09.2011, 02:51
myList.drawNow();

Лучше использовать методы самого List-а нет необходимости вручную создавать новый DataProvider:
myList.addItem, myList.addItems, после использования данных методов нет необходимости вызывать drawNow().