В Adobe Flex 3 у меня есть HBox, содержащий изображение и метку:
<mx:HBox width="240" verticalAlign="top" horizontalGap="8">
<mx:Image width="46" source="@Embed(source='/assets/blah.swf')"/>
<mx:Label text="Blah."/>
</mx:HBox>
Моя цель - выровнять верхний край изображения и верхний край метки (то есть верхнюю часть заглавных символов в метке). Однако независимо от того, с какими свойствами и стилями я возюсь, постоянное «заполнение» (в кавычках, потому что paddingTop равно нулю) примерно в 6 пикселей остается над меткой, устанавливая ее верхний край ниже изображения. Кто-нибудь знает, почему?
Спасибо, Саймон
изменить:
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), который используется Label внутри компании, ll. 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, и вуаля, проблема решена! Хотя это не очень чистое решение...