TextFormat,顾名思义,就是格式化文本用的。里面的相关属性,也都是用于设置或修改文本的格式。
(1)TextFormat包含的内容
再一次把属性面板图给搬过来,嘿嘿:
和面板对应的相关属性有:
font:设置文本的字体名称,以字符串形式表示。
size:设置文本的字体大小,以磅值表示。
color:设置文本的字体颜色。
bold:设置文字是否为粗体。
italic:设置文字是否为斜体。
align:设置文本对齐方式。包括左端对齐、居中对齐、右端对齐、两端对齐。
indent:设置文本第一个字符的缩进像素。
leading:设置文本之间的行间距。
leftMargin:设置文本段落的左边距。
rightMargin:设置文本段落的右边距。
letterSpacing:设置文本的字间距。
kerning:设置是否启用自动调整字距功能。
url:设置文本的超链接地址。
target:设置超链接打开目标窗口的方式。
其他还有4个属性,是属性面板没有提供的设置,但是也几乎没有什么作用,所以我就不列出来了。
(2)TextFormat的用法
使用TextFormat之前,需要先实例化。具体代码如下:
var format:TextFormat = new TextFormat(); //定义textFormat对象
format.font = "Verdana"; //设置具体属性
tt.defaultTextFormat = format; //设置默认格式
tt.setTextFormat(format,1,8); //设置格式
defaultTextFormat属性可以设置文本的默认格式。也就是说,当文本发生变化时,会自动应用设置的格式。但当前存在的文本是不会变化的。
setTextFormat()方法刚好相反,可以设置当前文本的格式,或者具体设置其中一部分文本应用指定格式。但当文本发生变化时,是不会生效的。
(3)关于TextFormat的一些自我看法
结合TextField和TextFormat的属性,我们可以实现属性面板的所有设置功能。不过,Adobe的开发团队,对于这两个对象的开发应该是独立的,所以两者之间也存在着一些矛盾。比如:TextField的autoSize和textColor属性,和TextFormat的align、color属性,明显是重复的。体现在AS代码上,就是谁后写,就生效谁的。但是这样子是很容易产生错误的。
所以我建议大家,还是用TextFormat对象来设置文本对齐方式和文本字体颜色,以免发生不必要的错误。毕竟,严格意义上来说,这两个属性也确实是TextFormat应该管的事。
另外还有一个小点,TextField的文本对齐方式是不支持两端对齐的,但TextFormat是支持的。所以以为AS代码不支持两端对齐的朋友,你们的看法是错的。