2009-03-06 39 views
1

在Adobe Flex 3中,我有一個包含一個圖像和一個標籤與HBox:的Flex 3:上對齊圖像和標籤

<mx:HBox width="240" verticalAlign="top" horizontalGap="8"> 
    <mx:Image width="46" source="@Embed(source='/assets/blah.swf')"/> 
    <mx:Label text="Blah."/> 
</mx:HBox> 

我的目標是對齊圖像的頂部邊緣和頂部邊緣標籤(標籤內的大寫字母的頂部,即)。但是,無論我使用哪種屬性和樣式,在Label上方都會保留一個常量「填充」(在引號中,因爲paddingTop爲零),並將其上邊緣設置在圖像的下方。有誰知道爲什麼?

謝謝,西蒙

編輯:

paddingTop沒有做的伎倆。我看到在此相同的行爲:

<mx:HBox width="240" verticalAlign="top" paddingTop="0"> 
    <mx:Canvas width="46" height="46" backgroundColor="red" paddingTop="0"/> 
    <mx:Label text="Blah." paddingTop="0"/> 
</mx:HBox> 

我也證實,沒有全局樣式表干擾任何這些類。

編輯2:

從由標籤內部使用爲mx.core.UITextField源代碼(Flex的3.2.0),11。 159:

/* 
     The width and height of the TextField are 4 pixels greater than 
     the textWidth and textHeight. 
    */ 

public function get measuredHeight():Number 
    { 
    (...) 
     return textHeight + TEXT_HEIGHT_PADDING; 
    (...) 
    } 

然後,我把我的標籤的paddingTop至-4,瞧,問題就解決了!這不是一個乾淨的解決方案,雖然...

回答

2

我剛剛擺弄這與它似乎你必須實際設置paddingTop零爲標籤,因爲如果你不聲明任何填充它將使用該組件的內置填充,因此它不會爲零。

當我運行該示例時,這似乎正在工作。

編輯:髒,但固定,對不對? ;)