In Adobe Flex 3 habe ich eine HBox ein Bild und ein Label enthält:Flex 3: Top align Bild und Label-
<mx:HBox width="240" verticalAlign="top" horizontalGap="8">
<mx:Image width="46" source="@Embed(source='/assets/blah.swf')"/>
<mx:Label text="Blah."/>
</mx:HBox>
Mein Ziel ist es, den oberen Rand des Bildes und die obere Kante auszurichten von das Label (das ist die Spitze der Großbuchstaben innerhalb des Labels). Unabhängig von den Eigenschaften und Stilen, mit denen ich experimentiere, bleibt eine konstante "Auffüllung" (in Anführungszeichen, da paddingTop gleich Null ist) von etwa 6 Pixeln über dem Label, wobei die obere Kante unter dem Bild liegt. Weiß jemand warum?
Danke, Simon
edit:
paddingTop ist nicht tut den Trick. Ich sehe das gleiche Verhalten auf diesem:
<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>
Ich habe auch überprüft, dass es keine globale Stylesheet stört mit einer dieser Klassen.
bearbeiten 2:
Vom mx.core.UITextField Quellcode (Flex 3.2.0), die von Label intern verwendet wird, ll. 159:
/* The width and height of the TextField are 4 pixels greater than the textWidth and textHeight. */
und auch
public function get measuredHeight():Number { (...) return textHeight + TEXT_HEIGHT_PADDING; (...) }
Dann habe ich meinen Aufkleber paddingTop auf -4 gesetzt, und voilà, Problem gelöst! Es ist aber nicht wirklich eine saubere Lösung, aber ...