在flex中,如何声明控件以获取所有可用宽度

时间:2011-09-26 12:38:04

标签: flex flex4

在Flex 4.0中,我有一个带有视频显示的项目,下面是我创建的一些控件(播放/暂停按钮,用于显示进度的HSlider,一些音量控制......)

当闪光灯显示在一个太小而不适合所需宽度的所有控件的窗口中时,会出现问题。我看到的是一些控件被推到右边,看不到。 (也许是因为它们位于一个自定义容器中,充当窗口,但这是必需的功能)。

我想将HSlider指定为具有灵活的宽度,因此当用户创建一个小窗口时,控制栏中的项目仍然可见,并且HSlider已经足够压缩以实现这一点......

干杯!

编辑:我的窗口的代码(这是我希望变量大小的VBox):

<ns1:CollapsableTitleWindow x="294" y="36.65" backgroundColor="#000000" width="436" height="373" id="wnd" title="test" allowClose="false">
    <mx:VideoDisplay width="100%" height="100%" id="vd" autoPlay="false" volume="1"/>
    <mx:ControlBar id="ctrlbarLiveVideo1" width="100%">
        <mx:Button width="30" height="22" id="btnPlay" click="{doplay();}" icon="{imgPlayButton}"/>
        <mx:VBox verticalGap="1" horizontalAlign="right">
            <mx:HSlider id="slider" width="100%" invertThumbDirection="true" maximum="{vd.totalTime}" minimum="0" tickInterval="{vd.totalTime/10}" value="{Number(vd.playheadTime)}" />
            <mx:Label text="{sec2hms(Number(vd.playheadTime))} / {sec2hms(Number(slider.maximum))}"/>
        </mx:VBox>

        <mx:HBox id="box" horizontalGap="1" verticalAlign="middle">
            <mx:Label id="lblVolume" text = "{String(Math.round(vd.volume*100))+'%'}"/>
            <mx:Button label="-" id="btnless" width="34" height="22" verticalGap="0" labelPlacement="top" labelVerticalOffset="0" click = "{vd.volume -= 0.10}"/>
            <mx:Button label="+" id="btnmore" width="34" height="22" verticalGap="0" labelPlacement="top" labelVerticalOffset="0" click = "{vd.volume += 0.10}"/>   
        </mx:HBox>
    </mx:ControlBar>
</ns1:CollapsableTitleWindow>

制作此屏幕截图:

screenshot

1 个答案:

答案 0 :(得分:0)

显然答案是:将HSlider的minWidth显式设置为0:

<mx:HSlider minWidth="0" id="slider" width="100%" ... />

并且还使VBox宽度=“100%”:(感谢code90)

<mx:VBox width="100%" verticalGap="1" horizontalAlign="right">