2012-10-06 128 views

回答

0

我發現確切的溶液在階段的中心定位的按鈕用於任何改變舞臺寬度和高度

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

這樣做的唯一問題是它不會自動更新,除非將其附加到調整大小函數。爲什麼不做'button.horizo​​ntalCenter = 0'和'button.verticalCenter = 0'呢?這將確保他們始終保持更新,更簡潔的代碼,並允許您將其設置在AS3中,這正是您想要的。 –

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

如果Button的容器具有絕對佈局(BasicLayout),它是作爲使用UIcomponenthorizontalCenterverticalCenter性質簡單:

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

BasicLayout是每個Spark容器的默認佈局。 mx組件沒有獨立的佈局類,但概念是相同的:默認情況下,定位是絕對的。

+0

一個VerticalLayout的的目的是定位在一個垂直的線元素。 Horizo​​ntanalAlign和VerticalAlign是VerticalLayout類的屬性。你似乎在說使用這些屬性違背了課堂的目的。我不確定我是否同意。沒有「規則」,VerticalLayout的第一個元素必須從位置0,0開始。 – JeffryHouser

+0

@ www.Flextras.com你是對的。我受到VGroup示例中的x =「{container.width/2}」y =「{container.height/2}」'部分的欺騙(可能是複製/粘貼錯誤)。我會編輯我的,如果你編輯你的;) – RIAstar

+0

你是對的;這是我的一個複製和粘貼錯誤。在VGroup中,X和Y屬性被忽略。 – JeffryHouser