現在、2つのArrayCollection(a、b)があり、aはバインド可能に設定されています。aをbでリセットしたい。
私たちのプロジェクトの古いコードは次のようなものです。
a = new ArrayCollection();
for (var i:int = 0; i < b.length; i++) {
a.addItem(b.getItemAt(i));
}
次に、メモリリークが発生する可能性があると思います。だから私はそれを次のように変更しました:
a.removeAll();
for (var i:int = 0; i < b.length; i++) {
a.addItem(b.getItemAt(i));
}
次に、トピックを読みました。フレックス最適化のヒント:ArrayCollection.removeAll()とArrayCollection.source = new Array()。これはバグですか? データセットが大きい場合、removeAll()によってパフォーマンスの問題が発生することが示されています。
それで、それはトリックオフがあることを意味しますか?データセットが小さい場合はremoveAllを使用する必要があり、データセットが大きい場合はremoveAll()を使用しないでください。
別の質問ですが、ArrayCollectionのソースの変更に関するトピックも読みました。a = bを直接使用すると、「ArrayCollectionインスタンスでイベントをリッスンしているすべてのデータバインドされたコントロールが強制終了されます」と表示されます。わかりません。a = bを試しましたが、問題なく動作します(データプロバイダーの更新としてaを使用するビュー)。
a=bとa.source=b.sourceを使用することの違いは何ですか?
Flexは初めてです。前もって感謝します。