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 flexcoders@yahoogroups.com, "Tim Hoff" <[EMAIL PROTECTED]> 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 flexcoders@yahoogroups.com, "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