在List中执行getItemAt()时获取[Object Object]

时间:2011-06-22 07:16:17

标签: flex actionscript-3 flex4 dataprovider

我已将我的数据提供者设置为Bindable

        [Bindable]
        public var dataProvider:ArrayCollection;

        public function init():void{

            dataProvider = new ArrayCollection(
                [{label:"x"},
                    {label:"y"},
                    {label:"z"}]);

然后在一个按钮的CLick事件调用的函数中,我想得到一个特定索引的项目

private function getmyItem(event:Event):void {
                trace(dataProvider.length);
                trace(dataProvider.getItemAt(1));
                                 //OR
trace(dataProvider.getItemAt(myList.selectedIndex));
}

但我的踪迹中有[Object Object]。有人可以告诉我我的代码有什么问题吗?

由于

3 个答案:

答案 0 :(得分:2)

您的代码不完整

trace(dataProvider.getItemAt(myList.selectedIndex).label);
trace("your_tilelist_name".dataProvider.getItemAt(myList.selectedIndex).label);

private function getmyItem(event:Event):void {
            trace("your_tilelist_name".dataProvider.length);
            trace("your_tilelist_name".dataProvider.getItemAt(1).label);
                            //OR
trace("your_tilelist_name".dataProvider.getItemAt(myList.selectedIndex).label);

}

答案 1 :(得分:1)

{label:"x"},
{label:"y"},
{label:"z"}

这些是使用Objects语法创建的{}

var obj:Object = {some:"value"};
trace(obj); // [object Object]

答案 2 :(得分:1)

您想要在trace中获得什么并不明显,但我猜可以通过以下修复解决您的问题:

private function getmyItem(event:Event):void {
                trace(dataProvider.length);
                trace(dataProvider.getItemAt(1).label);
                                 //OR
trace(dataProvider.getItemAt(myList.selectedIndex).label);
}