如何在flex 4中快速重新排序子元素?

时间:2010-11-30 12:37:25

标签: actionscript-3 sorting flex4

我有一个包含许多子元素(大约1000个)的控件,我需要对它们进行排序。

现在我这样做:

_elements.sortOn(...);

for (var i: int = 0; i < _elements.length; i++) {
    setItemIndex(_childItems[_elements[i].id], i);
}
  • _childElement - 包含UI子元素的对象,我需要对其进行排序(字典的键是数据对象的标识符
  • _elements - 数组包含数据对象

但这太慢了! 如何按照我的标准尽快给孩子重新排序?

1 个答案:

答案 0 :(得分:0)

我没有足够的信息来确保我的答案是正确的但是......如果“_elements”是一个数组集并且它作为数据提供者绑定到控件

有些想法&lt; ns:mycontrol dataProvider =“{_ elements}”/&gt;

每次更改“_elements”时,绑定都会使控件解析并在数据提供者中呈现数据,因此,对于1000长的列表,这将会很痛苦。

在这种情况下,我将_elements数组(数组集合的数据)存储在tmp变量中,并将其替换为新的空白数组。然后在tmp上执行所有排序操作并将其重新设置为_elements数据。通过这样做,你只是强制解析和渲染两次......不是1000次以上:)

我的2美分, 侨