によってArrayCollectionのソート私もこの問題に巻き込まれた、私はあなたの質問を見つけた、と私はまだそれがクリストフのように解決しますdidntは提案する。
これをしばらく苦しんだ後、私はあなたが言及した問題を避けるための1つの方法を発見しました。
補助ArrayCollectionを使用して、並べ替えを実行するだけです。とにかく、あなたのSortインスタンスは一時的なものになっているようですが、一時的なArrayCollectionを使用しないのはなぜですか?それは代わりにaux.lengthのauxLengthのようないくつかの奇妙なハックを(この1つは私-1配列範囲の例外を与えた)持っていますが、で、それはneatestコードではありません
// myArrayCollection is the one to sort
// Create the sorter
var alphabeticSort:ISort = new Sort();
var sortfieldFirstName:ISortField = new SortField("firstName",true);
var sortfieldLastName:ISortField = new SortField("lastName",true);
alphabeticSort.fields = [sortfieldFirstName, sortfieldLastName];
// Copy myArrayCollection to aux
var aux:ArrayCollection = new ArrayCollection();
while (myArrayCollection.length > 0) {
aux.addItem(myArrayCollection.removeItemAt(0));
}
// Sort the aux
var previousSort:ISort = aux.sort;
aux.sort = alphabeticSort;
aux.refresh();
aux.sort = previousSort;
// Copy aux to myArrayCollection
var auxLength:int = aux.length;
while (auxLength > 0) {
myArrayCollection.addItemAt(aux.removeItemAt(auxLength - 1), 0);
auxLength--;
}
:
はここのように私のコードを見てみましょう少なくともそれは私の問題を解決しました。
Hum ...実際には 'sort = null'を設定し、' ArrayCollection'を編集しようとすると例外が発生します。 'ArrayCollection.refresh()'を呼び出さない限り、これを行うと 'sort'が' null'でもデータがソートされます。私は立ち往生しています:p – nununo
@nununoと同じ動作をします。あなたは何が起こっていたのか分かりましたか? –
ええ、こちらと同じです。私は自分でArrayCollectionをソートしてしまいました。ラメ。 – jonnysamps