Setting the label offset on an HSlider control in Flex

by Peter deHaan on December 26, 2008

in HSlider, Slider

The following example shows how you can set the label offset on a Flex HSlider control by setting the labelOffset style.

Full code after the jump.

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/12/26/setting-the-label-offset-on-an-hslider-control-in-flex/ -->
<mx:Application name="HSlider_labelOffset_test"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:ApplicationControlBar dock="true">
        <mx:Form styleName="plain">
            <mx:FormItem label="labelOffset:">
                <mx:HSlider id="slider"
                        minimum="-20"
                        maximum="60"
                        value="-10"
                        snapInterval="1"
                        tickInterval="5"
                        liveDragging="true" />
            </mx:FormItem>
        </mx:Form>
    </mx:ApplicationControlBar>

    <mx:HSlider id="sl"
            labels="[0,5,10]"
            labelOffset="{slider.value}"
            tickInterval="1" />

</mx:Application>

View source is enabled in the following example.

You can also set the labelOffset style in an external .CSS file or <mx:Style/> block, as seen in the following example:

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/12/26/setting-the-label-offset-on-an-hslider-control-in-flex/ -->
<mx:Application name="HSlider_labelOffset_test"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Style>
        HSlider {
            labelOffset: 20;
        }
    </mx:Style>

    <mx:HSlider id="sl"
            labels="[0,5,10]"
            tickInterval="1" />

</mx:Application>

Or, you can set the labelOffset style using ActionScript, as seen in the following example:

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/12/26/setting-the-label-offset-on-an-hslider-control-in-flex/ -->
<mx:Application name="HSlider_labelOffset_test"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            import mx.events.SliderEvent;

            private function slider_change(evt:SliderEvent):void {
                sl.setStyle("labelOffset", evt.value);
            }
        ]]>
    </mx:Script>

    <mx:ApplicationControlBar dock="true">
        <mx:Form styleName="plain">
            <mx:FormItem label="labelOffset:">
                <mx:HSlider id="slider"
                        minimum="-20"
                        maximum="60"
                        value="-10"
                        snapInterval="1"
                        tickInterval="5"
                        liveDragging="true"
                        change="slider_change(event);" />
            </mx:FormItem>
        </mx:Form>
    </mx:ApplicationControlBar>

    <mx:HSlider id="sl"
            labels="[0,5,10]"
            tickInterval="1" />

</mx:Application>

Leave a Comment

Sorry, this blog is terrible at eating HTML comments.
If you're pasting any HTML/XML/MXML code, you need to convert your < characters to &lt; and your > characters to &gt; .

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Anti-Spam Protection by WP-SpamFree

Previous post:

Next post: