2009-09-01 111 views
0

Flex VBox中有兩個標籤(A和B),水平對齊設置爲「中心」。我希望將A設置爲垂直居中(位於容器的中心),將B設置在A的下面(或者位於底部;兩者都可以)。操縱這個最好的方法是什麼?Flex佈局2對象,第一個居中

回答

1

我發現,使用網格控制工作非常漂亮地完成任務,而沒有空白標籤添加:

<mx:Grid width="100%" height="100%"> 
    <mx:GridRow height="20%"/> 
    <mx:GridRow height="60%"> 
    <mx:GridItem verticalAlign="middle" horizontalAlign="center"> 
     <mx:Label text="Label A" fontSize="60" fontFamily="Arial"/> 
    </mx:GridItem> 
    </mx:GridRow> 
    <mx:GridRow height="20%" verticalAlign="middle"> 
    <mx:GridItem verticalAlign="middle" horizontalAlign="center"> 
     <mx:Label text="Label B" fontSize="24" fontFamily="Arial"/> 
    </mx:GridItem> 
    </mx:GridRow>   
</mx:Grid> 
0

將A添加到容器之後A. VBox的全部要點是垂直堆疊東西,所以它會很容易地完成你想要的。

如果你想要它定位不同的東西水平,你會想使用VBoxes和HBoxes(也許墊片)的組合。例如:

VBOX( 標籤甲 HBOX(間隔,標籤B) )

0

您的回答過於複雜。使用Canvas而不是VBox。然後覆蓋「updateDisplayList」函數。

override protected function updateDisplayList(w:Number, h:Number):void { 
    super.updateDisplayList(w,h); 
    if(a && b) { 
    a.y = w/2 - a.height/2; 
    b.y = a.y + a.height; 
    } 
}