配列にフィルターをかける

配列にフィルターをかけて、一定の値の範囲内のみをタイルリストにて表示します。
http://moeten.info/flex/20080708_rakutenShop2/bin-release/main.html

以前作成したFlex楽天検索に値段機能をつけてみました。
ポイントとなる部分

var dp:ArrayCollection;
dp.filterFunction = sortRanges;

これで配列 dp に対して sortRanges をフィルターすることができます。
sortRanges はこんな感じ

private function sortRanges( item:Object ):Boolean{
    var maxPrice:int = int(hs.value);
    return item.price <= hs.value;
}

#スライドバーの値より低ければ true
あと、ちょっとお遊びとして、左のテーブルリストのアイテムをドラッグして、買い物かごに入れるとちょっとしたエフェクトが出るようにしてみました。

<mx:Sequence id="myItemsChange">
    <mx:Move
         duration="750"
         easingFunction="{Back.easeInOut}"
         perElementOffset="20"/>
</mx:Sequence>

また、余談ですが、エフェクトにも実行したいイベントを指定することができます。

 filter="addItem"

こうするとaddItemのときのみにエフェクトが実行されるようになります。