0

たくさんのオブジェクトをArrayCollectionに追加するコードがありました(ArrayCollection.addItem()を使用)。最初は、このコードの応答時間に大きな違いはありませんでした。

ただし、ArrayCollectionに追加されるオブジェクトの数が増えると、ルーチンの応答に時間がかかりました。

ArrayCollectionを削除し、代わりにArrayを使用する必要があり、(Array.push())要素を配列にプッシュすることにしました。

なぜこれが起こっているのか理解できませんでした。違いはなんですか?誰かがこれを推論できますか?

4

1 に答える 1

1

これは、複数のアイテムを扱うときに最初は私も混乱させました。RIAstarはすでにこの問題に触れています。intがプリミティブであるのと同じように、配列はプリミティブです。ArrayCollectionは、フレックスフレームワークの一部としてインスタンス化可能なクラスであり、さらに多くの機能を備えています。これはクラスであるため、ArrayCollectionのすべてのクラス拡張に必要なオーバーヘッドと処理のために、データが大きくなるにつれて遅くなります。

ArrayCollectionの主な追加機能は、配列に追加できないイベントを追加できることです。たとえば、ArrayCollection内のアイテムを追加、変更、または削除すると、addEventListener関数を介して追加したすべてのイベントがディスパッチされます。

また、ArrayCollectionには、登録済みのインデックスではなく、コレクション内の場所にあるアイテムのフィルタリング並べ替え、追加、取得、削除など、より便利なアイテム管理機能があります。

ArrayとArrayCollectionのどちらを選択するかは、コーディング/アプリケーションの優先順位がどこにあるかという問題です。パフォーマンスが必要ですか/アイテムがたくさんありますか?->配列はおそらくあなたが探しているものです。フレックスオブジェクトと簡単に統合できる、短くて速いコーディングが必要ですか?->ArrayCollectionが最適な方法かもしれません。

参考文献

いくつかの違いを説明

ArrayCollectionリファレンス

動作中のフィルター機能

于 2013-01-10T18:48:24.660 に答える