0

我有以下代码(文本输入)。

<s:TextInput id="label"                                                             
   text="just testing" 
   width="100%" 
   height="200"
   contentBackgroundColor="#aaaaaa"
   styleName="normalText">
</s:TextInput>

我很难找到如何将文本(“只是测试”)与顶部对齐。我检查了 Adob​​e 文档,但似乎没有可用于此属性的垂直对齐属性。

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/TextInput.html

我意识到有一个 textarea 组件可用,但由于性能原因,我需要使用 textinput。

topPadding 似乎适用于 mx

 <mx:TextInput 
  id="txt" 
  paddingTop="5" 
  text="I am Vertically aligned text" 
  textAlign="center" 
  width="250" 
  height="250">
</mx:TextInput>

任何提示将非常感谢。

谢谢!

4

1 回答 1

0

快速版

如果字体大小从不改变,则只需使用paddingBottom. 因为默认情况下垂直对齐设置为middle,单独减少 paddingTop不足以使文本充分向上移动;无论如何,它默认设置为 1px。你也必须增加paddingBottom。我不能给你确切的数字:它取决于字体的大小,所以你必须稍微调整一下这些值。

<s:TextInput paddingBottom="6"/>

可重复使用的版本

如果您希望您的解决方案可与任何类型的字体一起使用,则必须为 TextInput 创建自定义外观。幸运的是,这并不难:

  • 找出spark.skins.spark.TextInputSkin
  • 复制它并给它一个新名称,比如说my.skins.TopTextInputSkin
  • 找到RichEditableText带有 id 的标签textDisplay(它在底部)
  • 将其verticalAlign属性设置为top
  • 应用新皮肤:<s:TextInput skinClass="my.skins.TopTextInputSkin"/>
于 2013-07-12T13:37:59.863 回答