将horizo​​ntalscrollpolicy设置为auto后,如何确定vbox是否有滚动条?

时间:2012-07-30 05:58:29

标签: actionscript-3 flex flex3 actionscript-2

在下面的代码中,当我的hbox的宽度更多,然后出现vbox滚动条,但填充底部是不好的,所以我想确定wheter vbox是否有hscrollbar。 我检查确定哪个属性或方法的vbo shouid?

enter image description here

enter image description here

我想在图像2中填充相同的填充,如1

所示
<?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"  layout="vertical"
            verticalAlign="middle"
            backgroundColor="white">

        <mx:Script>
            <![CDATA[
                private function updateScrollPosition():void {
                    vSP.text = vBox.verticalScrollPosition.toString();
                    mVSP.text = vBox.maxVerticalScrollPosition.toString();
                }
            ]]>
        </mx:Script>

        <mx:Style>
            VBox {
                paddingLeft: 10;
                paddingRight: 10;
                paddingTop: 10;
                paddingBottom: 10;
            }
        </mx:Style>

        <mx:ApplicationControlBar dock="true">
            <mx:Form>
                <mx:FormItem label="verticalScrollPolicy:">
                    <mx:ComboBox id="comboBox">
                        <mx:dataProvider>
                            <mx:Array>
                                <mx:Object label="auto" />
                                <mx:Object label="on" />
                                <mx:Object label="off" />
                            </mx:Array>
                        </mx:dataProvider>
                    </mx:ComboBox>
                </mx:FormItem>
                <mx:FormItem label="height:">
                    <mx:HSlider id="slider"
                            minimum="50"
                            maximum="300"
                            value="50"
                            liveDragging="true"
                            snapInterval="1"
                            tickInterval="50" />
                </mx:FormItem>
                <mx:FormItem label="verticalScrollPosition:">
                    <mx:Label id="vSP" />
                </mx:FormItem>
                <mx:FormItem label="maxVerticalScrollPosition:">
                    <mx:Label id="mVSP" />
                </mx:FormItem>
            </mx:Form>
        </mx:ApplicationControlBar>

        <mx:VBox id="vBox"
                horizontalScrollPolicy="{comboBox.selectedItem.label}"
                backgroundColor="haloSilver"
                verticalAlign="middle" horizontalAlign="center" 
               height="50"
               width="200"
               paddingLeft="10" paddingRight="10" paddingBottom="10" paddingTop="10"
                updateComplete="updateScrollPosition();"
                creationComplete="updateScrollPosition();">
            <mx:HBox id="box"
                    backgroundColor="haloBlue"
                    width="{slider.value}"
                    height="100%" verticalAlign="middle" horizontalAlign="center"
                  >

                <mx:VBox height="12" width="12" borderStyle="solid" backgroundColor="red"/>
                <mx:Label fontSize="13" text="Label 13"/>

            </mx:HBox>
        </mx:VBox>

    </mx:Application>

1 个答案:

答案 0 :(得分:0)

我认为这可以通过访问VBox'/ HBox'“verticalScrollBar”或“horizo​​ntalScrolBar”实例并检查它们上的“visible”属性来实现:

var scrollbarVisible:Boolean = myVBox.verticalScrollBar.visible;