<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2008/10/12/aligning-the-label-placement-and-text-alignment-on-a-progressbar-control-in-flex/ -->
<mx:Application name="ProgressBar_textAlign_test"
        xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            import flash.text.TextFormatAlign;
            import mx.controls.ProgressBarLabelPlacement;
            import mx.events.ListEvent;

            private function adjustLabelWidth():void {
                var lWidth:Number;
                switch (labelPlacementComboBox.selectedItem.label) {
                    case ProgressBarLabelPlacement.LEFT:
                    case ProgressBarLabelPlacement.RIGHT:
                        lWidth = NaN;
                        break;
                    default:
                        lWidth = progressBar.width;
                        break;
                }
                progressBar.setStyle("labelWidth", lWidth);
            }

            private function labelPlacementComboBox_change(evt:ListEvent):void {
                var value:String = labelPlacementComboBox.selectedItem.label;
                progressBar.labelPlacement = value;
                adjustLabelWidth();
            }
            
            private function textAlignComboBox_change(evt:ListEvent):void {
                var value:String = textAlignComboBox.selectedItem.label;
                progressBar.setStyle("textAlign", value);
                adjustLabelWidth();
            }
        ]]>
    </mx:Script>

    <mx:Array id="labelPlacementDP">
        <mx:Object label="{ProgressBarLabelPlacement.LEFT}" />
        <mx:Object label="{ProgressBarLabelPlacement.RIGHT}" />
        <mx:Object label="{ProgressBarLabelPlacement.TOP}" />
        <mx:Object label="{ProgressBarLabelPlacement.BOTTOM}" />
        <mx:Object label="{ProgressBarLabelPlacement.CENTER}" />
    </mx:Array>

    <mx:Array id="textAlignDP">
        <mx:Object label="{TextFormatAlign.LEFT}" />
        <mx:Object label="{TextFormatAlign.CENTER}" />
        <mx:Object label="{TextFormatAlign.RIGHT}" />
    </mx:Array>

    <mx:ApplicationControlBar dock="true">
        <mx:Form styleName="plain">
            <mx:FormItem label="labelPlacement:">
                <mx:ComboBox id="labelPlacementComboBox"
                        dataProvider="{labelPlacementDP}"
                        selectedIndex="3"
                        change="labelPlacementComboBox_change(event);"/>
            </mx:FormItem>
            <mx:FormItem label="textAlign:">
                <mx:ComboBox id="textAlignComboBox"
                        dataProvider="{textAlignDP}"
                        change="textAlignComboBox_change(event);" />
            </mx:FormItem>
        </mx:Form>
    </mx:ApplicationControlBar>

    <mx:ProgressBar id="progressBar"
            indeterminate="true"
            width="200" />

</mx:Application>