首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

HorizontalList 动态添加数据,请帮忙!该怎么处理

2012-02-13 
HorizontalList动态添加数据,请帮忙!XML codemx:HorizontalListmx:dataProvidermx:Arraymx:Object

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);} 

热点排行