【问题标题】:Flex - Vertically position children of a horizontal HBoxFlex - 垂直定位水平 HBox 的子项
【发布时间】:2010-10-19 20:33:31
【问题描述】:

我有一个自定义的 HBox ......

公共类 MyBar 扩展 HBox {

public function MyBar() {
super();

this.height = 65;
this.percentWidth = 100;

var newButton:Button = new Button();
//..... 
newButton.y = 20;

var spacer1:Spacer = new Spacer();
spacer1.percentWidth = 50;

var spacer2:Spacer = new Spacer();
spacer2.percentWidth = 50;

this.addChild(spacer1);
this.addChild(newButton);
this.addChild(spacer2);

}

}

这会在 HBox 的中心显示一个按钮,但该按钮与 Box 的顶部对齐,我希望它位于中心。

我确信我之前也曾像设置 y 值一样简单地进行过此操作。但现在似乎没有工作。我正在使用 SDK 3.3

任何人都知道为什么我在这方面遇到困难?

谢谢!

【问题讨论】:

    标签: apache-flex actionscript-3 alignment hbox


    【解决方案1】:

    设置 y 不起作用,因为 HBox 控制 y 位置。如果您希望所有按钮都放在 HBox 的中间,您需要将 verticalAlign 设置为 middle

    在代码中

    setStyle("verticalAlign", "middle");
    

    【讨论】:

    • Adam... 确保您设置了 verticalAlign: middle;在 HBox 上,而不是按钮上。