Hey Josh,

What's up with:

return item.value >=
Math.min(priceSlider.values[0],priceSlider.values[1]) &&
item.value <=Math.max(priceSlider.values[0],priceSlider.values[1]);

You can avoid this by setting allowThumbOverlap="false".  Then just use:

return item.value >= priceSlider.values[0] && item.value
<=priceSlider.values[1);

-TH

--- In [email protected], "Josh McDonald" <[EMAIL PROTECTED]> wrote:
>
> Complete example with 2 thumbs (from the earlier example):
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute">
>
> <mx:Script>
> <![CDATA[
> import mx.collections.ArrayCollection;
>
> [Bindable]
> private var allProducts : Array = [
> {
> name: "Datsun 120y",
> value : 1000
> },
> {
> name: "Nissan 350Z",
> value : 55000
> },
> {
> name: "Porsche GT3",
> value : 325000
> },
> {
> name: "HSV Clubsport",
> value : 79999
> },
> {
> name: "Mercedes SLR",
> value : 1200000
> },
> {
> name: "Lada Niva",
> value : 75
> },
> {
> name: "Ford Falcon XY GTHO",
> value : 375000
> },
> {
> name: "Batmobile",
> value : 654321
> },
> {
> name: "Ford Falcon XA GTHO",
> value : 2200000
> }];
>
> [Bindable]
> private var filteredList : ArrayCollection = new
> ArrayCollection(allProducts);
>
> private function updateFilter() : void
> {
> filteredList.filterFunction = myFilterFunction;
> filteredList.refresh();
> }
>
> private function myFilterFunction(item : Object) : Boolean
> {
> return item.value >=
> Math.min(priceSlider.values[0],priceSlider.values[1]) && item.value <=
> Math.max(priceSlider.values[0],priceSlider.values[1]);
> }
>
> ]]>
> </mx:Script>
>
> <mx:DataGrid horizontalCenter="0" verticalCenter="0" width="410"
> height="354" dataProvider="{filteredList}">
> <mx:columns>
> <mx:DataGridColumn headerText="Car Name" dataField="name"/>
> <mx:DataGridColumn headerText="Value" dataField="value"/>
> </mx:columns>
> </mx:DataGrid>
> <!--<mx:HSlider verticalCenter="-191" horizontalCenter="0" minimum="0"
> maximum="2000000" id="min" liveDragging="true"
change="updateFilter()"/>
> <mx:HSlider verticalCenter="191" horizontalCenter="0" minimum="0"
> maximum="2000000" id="max" liveDragging="true" change="updateFilter()"
> value="2000000"/>
> <mx:Label text="Min" textAlign="right" width="117"
> horizontalCenter="-147" verticalCenter="-191"/>
> <mx:Label text="Max" textAlign="right" width="117"
> horizontalCenter="-147" verticalCenter="191"/>-->
>
> <mx:HSlider horizontalCenter="0" verticalCenter="-200"
id="priceSlider"
> minimum="0"
> maximum="3000000" tickInterval="100000" snapInterval="10"
> thumbCount="2" values="[0,3000000]" tickColor="#ffffff"
> labels="[$0k,$3000000M]" liveDragging="true" width="182"
> change="updateFilter()"/>
>
> </mx:Application>
>
>
> On Thu, Aug 7, 2008 at 2:39 AM, Tim Hoff [EMAIL PROTECTED] wrote:
>
> >
> > And go back to your original filterFunction:
> >
> > if ( (city_cb.selectedLabel == "All" || item.city ==
> > city_cb.selectedLabel) && (lct_cb.selectedLabel == "All" ||
> > item.location == lct_cb.selectedLabel) && (item.value >
> > priceSlider.values[0] && item.value < priceSlider.values[1])
> > ){
> > result=true;
> > }
> > return result;
> > }
> >
> > priceSlider.values[3000000] doesn't exist. Then as Alex suggests,
walk
> > through the code with the debugger, or trace.
> >
> > -TH
> >
> > --- In [email protected], "Tim Hoff" TimHoff@ wrote:
> > >
> > >
> > > Yeah shoot, my bad. Take the values property out of the tag.
Should
> > > have said set the min to 0 and the max to 3,000,000 (like you have
it.
> > > The "values" will lock the thumbs to those two positions (values)
> > only.
> > >
> > > -TH
> > >
> > > --- In [email protected], "Josh McDonald" dznuts@ wrote:
> > > >
> > > > Shows how often I use the sliders. I didn't know you could use
> > > multiple
> > > > thumbs... This is not performant, you should be getting the max
and
> > > min
> > > > within updateFilter() and sticking them in private vars, not in
the
> > > filter
> > > > function itself... but you get the idea.
> > > >
> > > > private function myFilterFunction(item : Object) : Boolean
> > > > {
> > > > return item.value >=
> > > > Math.min(priceSlider.values[0],priceSlider.values[1]) &&
item.value
> > <=
> > > > Math.max(priceSlider.values[0],priceSlider.values[1]);
> > > > }
> > > >
> > > >
> > > > On Wed, Aug 6, 2008 at 5:29 PM, stinasius stinasius@ wrote:
> > > >
> > > > > i managed to build a dual thumb slider that i pass on the
filter
> > > > > function. here is the code.
> > > > >
> > > > > <mx:HSlider x="0" y="240" id="priceSlider" minimum="0"
> > > > > maximum="3000000" tickInterval="100000" snapInterval="10"
> > > > > thumbCount="2" values="[0,3000000]" tickColor="#ffffff"
> > > > > labels="[$0k,$3000000M]" liveDragging="true" width="182"
> > > > > change="filterGrid()"/>
> > > > >
> > > > >
> > > > > ------------------------------------
> > > > >
> > > > > --
> > > > > Flexcoders Mailing List
> > > > > FAQ:
> > > http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > > > > Search Archives:
> > > > > http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo!
> > > Groups
> > > > > Links
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > "Therefore, send not to know For whom the bell tolls. It tolls
for
> > > thee."
> > > >
> > > > :: Josh 'G-Funk' McDonald
> > > > :: 0437 221 380 :: josh@
> > > >
> > >
> >
> >
> >
> >
> > ------------------------------------
> >
> > --
> > Flexcoders Mailing List
> > FAQ:
http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
> > Search Archives:
> > http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo!
Groups
> > Links
> >
> >
> >
> >
>
>
> --
> "Therefore, send not to know For whom the bell tolls. It tolls for
thee."
>
> :: Josh 'G-Funk' McDonald
> :: 0437 221 380 :: [EMAIL PROTECTED]
>


Reply via email to