SortField中指定的值未被ArrayCollection排序使用

时间:2016-12-20 21:01:01

标签: actionscript-3 flex flex4 flex4.5

我之前看过这个问题(Flex arraycollection sorting not working),但它似乎与我所看到的问题无关。

我正在尝试使用自定义比较函数进行一种ArrayCollection(使用此处的示例:Alphanumeric Sorting in AS3

问题:似乎我的List实例中指定的字段名称没有传递给比较函数 - 而是对象本身。这似乎是错误的 - 但也许我是误解(这个问题和答案有点令人困惑:Flex: Sort -- Writing a custom compareFunction?) - 如果不是List,在SortField中指定字段名称有什么意义呢?用吗?

下面是一个精简的例子。我正在尝试对SortField个实例列表进行排序。 compare函数中的trace语句确认File实例,而不是它们的名称属性作为参数传递。

我是否需要自定义比较功能?对于可重复使用的编码来说,这是**咳嗽**。

更新

正如经常发生的那样,我提出了一个解决问题的解决方案。在这种情况下使用代理功能。不过,我想知道为什么File中指定的值没有被使用。

SortField
    public function customCompare(obj1:*, obj2:*):int
    {
        return AlphaNumericSort.compare(obj1.name, obj2.name);
    }

1 个答案:

答案 0 :(得分:0)

我已经测试了你的代码。它工作正常。只在您的代码中替换以下行                                                               sortField.compareFunction = AlphaNumericSort.compare;
sortField.compareFunction = customCompare;

相关问题