【问题标题】:How to find the number of returned objects from an Actionscript getter function?如何从 Actionscript getter 函数中查找返回对象的数量?
【发布时间】:2011-07-20 18:55:27
【问题描述】:

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

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

我知道,如果我使用 Flex spark:DataGrid,我可以轻松获得数据网格的长度以了解行数(在我的情况下,这将是我的 getItems() 函数返回的对象数) .但是,我使用的是 mx:AdvancedDataGrid,无法通过与 spark:DataGrid 相同的方式获取长度。

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

至少,我打算这样做。

有没有更好的方法来做到这一点?

PS:我在 Google 上进行了广泛搜索,但找不到任何我想做的工作示例。

欢迎提出建议,StackOverflow 很棒!

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

【问题讨论】:

    标签: apache-flex actionscript-3 for-loop label vbox


    【解决方案1】:

    这个怎么样:

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

    【讨论】:

    • 太棒了!这使我免于再次调用 getItems() 函数。
    • 但是,我仍然通过创建 ArrayCollection 消耗了一些物理内存。例如,有没有办法获得 getItemsResult.lastResult 的长度?我无法从 Content Assist 菜单中获取 lastResult 属性的 .length。
    【解决方案2】:

    我错过了什么吗?这对你有用吗?

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

    【讨论】:

      【解决方案3】:

      ArrayCollection 有一个继承自 ListCollectionView 的长度属性。这是你需要的吗?

      【讨论】:

        【解决方案4】:

        你可以这样做

        getItemsResult.lastResult.length 
        

        (getItemsResult.lastResult as ArrayCollection).length
        

        ArrayCollection(getItemsResult.lastResult).length
        

        基本上都是一样的。

        【讨论】:

        • 第一个不行。我正在使用适用于 PHP 4.5 (Flex 4) 的 Flash Builder,但我没有获得 getItemsResult 的 lastResult 属性的 .length 属性。您使用的是哪个版本的 Flex SDK?
        • 上下文辅助可能无法检测到该属性,因为在编译时,您并不真正知道 getItemsResult.lastResult 会是什么。这将是您的服务发回的任何内容。在这种情况下,因为您知道它将是 ArrayCollection,所以第一个将在运行时工作,并且您不应该收到编译错误。您是否遇到运行时错误?如果是,请发布错误。
        • 感谢您的意见。对于每个有相同问题的人:我最终使用 mx:Repeater 来完成这项工作。
        猜你喜欢
        • 1970-01-01
        • 2015-12-15
        • 1970-01-01
        • 1970-01-01
        • 2021-07-20
        • 1970-01-01
        • 2021-01-30
        • 2012-02-29
        • 1970-01-01
        相关资源
        最近更新 更多