我有一个包含许多子元素(大约1000个)的控件,我需要对它们进行排序。
现在我这样做:
_elements.sortOn(...);
for (var i: int = 0; i < _elements.length; i++) {
setItemIndex(_childItems[_elements[i].id], i);
}
但这太慢了! 如何按照我的标准尽快给孩子重新排序?
答案 0 :(得分:0)
我没有足够的信息来确保我的答案是正确的但是......如果“_elements”是一个数组集并且它作为数据提供者绑定到控件
有些想法&lt; ns:mycontrol dataProvider =“{_ elements}”/&gt;
每次更改“_elements”时,绑定都会使控件解析并在数据提供者中呈现数据,因此,对于1000长的列表,这将会很痛苦。
在这种情况下,我将_elements数组(数组集合的数据)存储在tmp变量中,并将其替换为新的空白数组。然后在tmp上执行所有排序操作并将其重新设置为_elements数据。通过这样做,你只是强制解析和渲染两次......不是1000次以上:)
我的2美分, 侨