HorizontalList 动态添加数据,请帮忙!
- XML code
<mx:HorizontalList > <mx:dataProvider> <mx:Array> <mx:Object label="Backpack" icon="@Embed('images/backpack.jpg')"/> <mx:Object label="Compass" icon="@Embed('images/compass.jpg')"/> </mx:Array> </mx:dataProvider></mx:HorizontalList>
上面是静态的 我要动态的 添加数据源
- XML code
<mx:HorizontalList dataProvider="{arrobj}" > <mx:dataProvider> <mx:Array> <mx:Object label="Backpack" icon="@Embed('images/backpack.jpg')"/> <mx:Object label="Compass" icon="@Embed('images/compass.jpg')"/> </mx:Array> </mx:dataProvider></mx:HorizontalList><mx:Script> [Bindable] private var arrobj:Array = new Array(); public function addListObj():void{ var obj:Object=new Object(); obj.label="ffff"; arrobj.push(obj); }</mx:Script>
为什么执行addListObj()函数,HorizontalList的数据源没改变呢?没显示出来 ,请帮忙
[解决办法]
private var arrobj:Array = new Array();
换成ArrayCollection类型
添加方法换成
private var arrobj:ArrayCollection= new ArrayCollection();
arrobj.addItem(obj);
因为Array是半绑定类型,里面数据更改是不会触发绑定的。只有array重新执行另一个对象才触发绑定
但ArrayCollection则不同。
[解决办法]
楼上正解
- JScript code
[Bindable]private var listArr:ArrayCollection=new ArrayCollection();private function init():void{ var obj:Object=new Object(); obj.label="aaa"; listArr.addItem(obj);}