我试图在AS3中的Monoline TextField中垂直对齐一些文本。 不确定是否可以使用TextFormat完成,但我不这么认为。
我找了一个解决方案,但没有什么真正有用的。欢迎任何帮助。
谢谢!
答案 0 :(得分:16)
您无法自动垂直对齐文字。你需要自己做。
这是我的工作代码:
public static function verticalAlignTextField(tf: TextField): void {
tf.y += Math.round((tf.height - tf.textHeight) / 2);
}
答案 1 :(得分:6)
如果您能够使用fl.text.TLFTextField代替flash.text.TextField
(可从Flash Player 10+获得),则可以使用verticalAlign属性垂直居中文本:
import flashx.textLayout.formats.VerticalAlign;
[...]
myTextField.verticalAlign = VerticalAlign.MIDDLE;
答案 2 :(得分:1)
我可以确保“walkietokyo”答案是真正的答案,但应该以正确的方式使用,请参阅adobe文档“(adopts default value if undefined during cascade)”,换句话说,TLFTextFild的某些属性可能会级联verticalAlign像textFormat这样的properety,所以在每个东西之后放置verticalAlign属性来级联其他东西,然后它就会工作。它适用于我:)
答案 3 :(得分:1)
这仅适用于文本为单行的情况。
首先,您必须在每个文本中添加初始分隔线。我在扩展TextField并覆盖“text”函数的新组件中添加了初始断行符。
<?php
$url = "http://www.nigeriatest.com";
// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);
// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
echo("$url is a valid URL");
} else {
echo("$url is not a valid URL");
}
?>
然后你需要将格式应用于文本,使用“leading”属性来表示行之间的垂直空间量。
import flash.text.TextField;
public class MyTextField extends TextField
{
public function MyTextField()
{
super();
}
public override function set text(value:String):void
{
value = "\n" + value;
super.text = value;
}
}
我希望这对使用TextField在单行文本中需要垂直对齐的人有所帮助。 : - )