如何在文本输入中垂直对齐到顶部(as3)



我有以下代码(textinput)。

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

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

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

我意识到有一个文本区域组件可用,但由于性能原因,我需要使用文本输入。

顶部填充似乎适用于mx

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

如有任何提示,我们将不胜感激。

谢谢!

快速版本

如果字体大小从不变化,那么只使用paddingBottom就足够了。由于默认情况下垂直对齐设置为middle,因此仅减少paddingTop不足以将文本充分上移;默认情况下,它设置为1px。你也必须增加paddingBottom。我不能给你确切的数字:这取决于字体的大小,所以你必须稍微考虑一下这些值。

<s:TextInput paddingBottom="6"/>

可重复使用版本

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

  • 查找spark.skins.spark.TextInputSkin
  • 复制它并给它一个新名称,比如my.skins.TopTextInputSkin
  • 查找id为textDisplayRichEditableText标签(位于底部)
  • 将其verticalAlign属性设置为top
  • 涂抹新皮肤:<s:TextInput skinClass="my.skins.TopTextInputSkin"/>

最新更新