Apache flex 如何从Actionscript getter函数中查找返回的对象数?

Apache flex 如何从Actionscript getter函数中查找返回的对象数?,apache-flex,actionscript-3,for-loop,label,vbox,Apache Flex,Actionscript 3,For Loop,Label,Vbox,在我的Flex项目中,我有一个服务函数getItems(),它返回一个Item对象的集合/数组 该函数运行一条SQL语句,如SELECT*FROM table。因此,我不想使用SELECT COUNT SQL语句 我知道,如果我使用Flex spark:DataGrid,我可以很容易地获得DataGrid的长度,从而知道行数(在我的例子中,行数就是getItems()函数返回的对象数)。但是,我使用的是mx:AdvancedDataGrid,不可能通过与spark:DataGrid相同的方法获得

在我的Flex项目中,我有一个服务函数getItems(),它返回一个Item对象的集合/数组

该函数运行一条SQL语句,如SELECT*FROM table。因此,我不想使用SELECT COUNT SQL语句

我知道,如果我使用Flex spark:DataGrid,我可以很容易地获得DataGrid的长度,从而知道行数(在我的例子中,行数就是getItems()函数返回的对象数)。但是,我使用的是mx:AdvancedDataGrid,不可能通过与spark:DataGrid相同的方法获得长度

实际上,我需要用text={ItemName}动态创建一组标签。使用Vbox和for循环,我能够创建标签列表。目前,在for循环中,分隔符有一个随机数。我只需要获取getItems()函数返回的对象数。然后我可以把这个数字放进for循环,工作就完成了

至少,我计划这样做

有更好的方法吗

PS:我在谷歌上搜索了很多,但是我找不到任何我想做的工作的例子

欢迎提出建议,StackOverflow非常棒


[编辑]我最终使用了mx:Repeater来完成上述任务。

我遗漏了什么吗?这对你有用吗

var list:IList = getItems();
trace(list.length)

ArrayCollection具有从ListCollectionView继承的长度属性。这就是你需要的吗?

这个怎么样:

private function getItemsResultHandler(event:ResultEvent):void
{
    var items:ArrayCollection = new ArrayCollection();
    items = event.result as ArrayCollection;

    trace(items.length);
}
你可以简单地做

getItemsResult.lastResult.length 


基本上都是一样的。

太棒了!这使我避免了再次调用getItems()函数。但是,我仍然通过创建ArrayCollection来消耗一些物理内存。例如,是否有方法获取getItemsResult.lastResult的长度?我无法从内容辅助菜单中获取lastResult属性的.length。第一个属性不起作用。我正在使用适用于PHP4.5(Flex4)的Flash Builder,但我没有获得getItemsResult的lastResult属性的.length属性。您使用的是哪个版本的Flex SDK?上下文辅助可能无法检测该属性,因为在编译时,您不知道getItemsResult.lastResult将是什么。它将是您的服务返回的任何内容。在这种情况下,因为您知道它将是ArrayCollection,所以第一个将在运行时工作,您不应该得到编译错误。您是否遇到运行时错误?如果是,请发布错误。感谢您的输入。每个人都有同样的问题:我最终使用了一个mx:Repeater来完成这项工作。
(getItemsResult.lastResult as ArrayCollection).length
ArrayCollection(getItemsResult.lastResult).length