定位按钮到中心,以便在flex中改变宽度和高度

时间:2012-10-06 13:09:39

标签: flex

我想将我的按钮始终放在中心,以适应任何不断变化的应用宽度和高度。

如何在mxml中实现它?

3 个答案:

答案 0 :(得分:1)

您想将按钮置于什么的中心?有时我认为这样的代码在ActionScript中作为updateDisplayList()方法的一部分做得更好。但是,如果您想在MXML中执行此操作:

<buttonContainer id="container">
 <s:Button x="{container.width/2}" y="{container.height/2}" />
</buttonContainer>

从概念上讲,这应该适用于任何容器。有些容器使它更容易;比如VGroup:

<s:VGroup horizontalAlign="Center" verticalAlign="middle">
     <s:Button />
</s:VGroup> 

答案 1 :(得分:1)

如果Button的容器具有绝对布局(BasicLayout),则只需使用UIcomponent的{​​{3}}和horizontalCenter属性即可:

<s:Group width="400" height="300">
    <s:Button horizontalCenter="0" verticalCenter="0" />
</s:Group>

BasicLayout是每个Spark容器的默认布局。 mx组件没有单独的布局类,但概念是相同的:默认情况下,定位是绝对的。

答案 2 :(得分:0)

我找到了将按钮放在舞台中央的确切解决方案,以适应任何不断变化的舞台宽度和高度

button.x=(stage.stageWidth-button.width)/2;
button.y=(stage.stageHeight-button.height)/2;