3

我正在尝试使用 mxml 在 flex 中创建一个布局,该布局包含一个 Canvas 组件和一个 Box。布局应始终使 Box 位于应用程序的底部边缘并具有固定高度,而 Canvas 填充剩余的舞台区域并且不与 Box 重叠。

我的 MXML 如下;

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
width="100%" height="100%" layout="absolute" clipContent="false" verticalGap="0">
    <mx:Canvas width="100%" height="100%" />

    <mx:Box width="100%" height="30"></Box>
</mx:Module>

我尝试使用动态绑定来设置画布上的高度(height="{this.stage.height - 30}"),但它会产生错误的结果。

有没有一种简单的方法可以在不使用 Actionscript 设置高度的情况下实现我所追求的目标?

4

3 回答 3

2
<Module layout="vertical" xmlns="...">
  <Canvas width="100%" height="100%">
  <HBox width="100%" height="30"/>
</Module>

通过设置layout="vertical"Module或多或少像VBox. 设置为Canvas填充 100% 垂直和水平,但将为 保留空间HBox,因为它具有明确的高度。

于 2009-06-26T17:19:43.473 回答
1

我没有太多使用模块,但这有效:

<mx:Application 
    xmlns:mx="http://www.adobe.com/2006/mxml" 
    layout="absolute" 
    width="100%"
    height="100%"
    >
        <mx:Canvas left="0" right="0" top="0" bottom="0" />
    <mx:HBox 
        width="100%"
        height="50"
        bottom="0"
        >
             ....
    </mx:HBox>
</mx:Application>

希望有帮助!

于 2009-06-26T16:01:08.320 回答
0

我能够使用;

<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
width="100%" height="100%" layout="absolute" clipContent="false" verticalGap="0">
    <mx:Canvas bottom="30" left="0" right="0" top="0" />

    <mx:Box width="100%" height="30"></Box>
</mx:Module>

这解决了我的问题,因为 Canvas 会填满 Box 的可用空间。在 Canvas 上将 bottom 属性设置为 0,会导致它扩展到 Box 之外并填充整个舞台。

于 2009-06-29T10:59:46.983 回答