这篇帖子讲的是在ActionScript中用一个快捷的方法来排序ArrayCollection,这方法就是基础Array中的sortOn方法。为了快点我只用了少量代码——我对执行结果就不作陈述了。
通常排列一个ArrayCollection你需要创建Sort和SortField类的实例,最终写出如下代码(不能测试的代码仅为留个印象):
var sort:Sort = new Sort();
var sortField:SortField = new SortField();
sortField.name = "myFieldName";
sortField.numeric = true;
sortField.descending = true;
myCollection.sort = sort;
myCollection.refresh();
复制代码
然而因为ArrayCollection类的源属性引用了Array,Array充当ArrayCollection的数据源,你可以随意的使用(它有点调皮因为你并没有想要这么做而且结果因人而异)。
所以要用‘myFieldName’按数字顺序排列如上例子‘myCollection’,你可以:
myCollection.source.sortOn('myFieldName', Array.DESCENDING | Array.NUMERIC );
myCollection.refresh();
复制代码
我可以肯定一些人会因这篇文章批评我,但请继续。这种方法对我的项目作用很大,并且似乎更加简明了。而我喜欢简单明了的东西。
通常排列一个ArrayCollection你需要创建Sort和SortField类的实例,最终写出如下代码(不能测试的代码仅为留个印象):
var sort:Sort = new Sort();
var sortField:SortField = new SortField();
sortField.name = "myFieldName";
sortField.numeric = true;
sortField.descending = true;
myCollection.sort = sort;
myCollection.refresh();
复制代码
然而因为ArrayCollection类的源属性引用了Array,Array充当ArrayCollection的数据源,你可以随意的使用(它有点调皮因为你并没有想要这么做而且结果因人而异)。
所以要用‘myFieldName’按数字顺序排列如上例子‘myCollection’,你可以:
myCollection.source.sortOn('myFieldName', Array.DESCENDING | Array.NUMERIC );
myCollection.refresh();
复制代码
我可以肯定一些人会因这篇文章批评我,但请继续。这种方法对我的项目作用很大,并且似乎更加简明了。而我喜欢简单明了的东西。