0

我有一个将一堆对象添加到 ArrayCollection 中的代码(使用 ArrayCollection.addItem())。最初,我没有注意到这段代码的响应时间有太大差异。

但是随着添加到 ArrayCollection 中的对象数量的增加,该例程需要更长的时间来响应。

我不得不放弃 ArrayCollection 并改用 Array 并将 (Array.push()) 元素推入数组。

我不明白为什么会这样。有什么区别?有人可以推理吗?

4

1 回答 1

1

在处理多个项目时,这让我一开始也感到困惑。RIAstar 已经触及到这个问题:Array 是一个原语,就像 int 是一个原语一样。ArrayCollection 是作为 flex 框架的一部分的可实例化类,具有更多特性。因为它是一个类,它会随着它的数据变大而变慢,因为 ArrayCollection 的所有类扩展都需要开销和处理。

ArrayCollection 的主要补充是您可以向它们添加事件,而您不能在 Arrays 上添加事件。例如,当您在 ArrayCollection 中添加、更改或删除项目时,它将调度您通过 addEventListener 函数添加的任何事件。

此外,ArrayCollection 具有更多有用的项目管理功能,例如过滤排序以及在集合中的位置而不是其注册索引处添加、获取和删除项目。

在 Array 和 ArrayCollection 之间进行选择取决于您的编码/应用程序优先级在哪里:您需要性能/您有很多项目吗?-> Array 可能是您正在寻找的。您是否需要简短/快速的编码,更容易与 flex 对象集成?-> ArrayCollection 可能是要走的路。

延伸阅读

一些差异解释

ArrayCollection 参考

过滤器功能在起作用

于 2013-01-10T18:48:24.660 回答