defaultTextFormat和setTextFormat()区别

在as3里使用setTextFormat()时,发现设置的文本格式总是没效果,有时在初使状态下,文本的格式是应用上去了,可在动态改变文本的内容后,格式又消失了。


截取部分代码如下:


package {
 import flash.text.TextField;
 import flash.text.TextFormat;
 public class control {
  public function control() {
  }
  public function createdText(name_txt:TextField) {
   var format:TextFormat;
   format = new TextFormat();
   format.color=0xA65402;
   format.size=32;
   name_txt.width=280;
   name_txt.height=38;
   name_txt.x=600;
   name_txt.y=160;
   name_txt.setTextFormat(format);
   //name_txt.defaultTextFormat = format;
  }
 }
}


原来是因为TextField.setTextFormat() 方法只影响已显示在文本字段中的文本。如果 TextField 中的内容发生更改,则应用程序可能需要重新调用 TextField.setTextFormat() 方法以便重新应用格式设置。也可以设置 TextField 的 defaultTextFormat 属性来指定文本默认所用的格式。


而setTextFormat 其实是三个参数,后面两个分别是 “开始索引”和“结束索引”,他仅仅是设置你开始索引到结束索引之间的文字的格式,而如果你不写后面两个参数,就表示当前所有文本, 注意是当前。



也就是说,如果文本字段的样式要经常变化,那么就用setTextFormat()方法,每改变一次样式,就重新应用一次setTextFormat();不然样式就会变为系统默认样式了。

如果文本字段的样式从始至终都使用同一样式,那么就用defaultTextFormat属性,不管文本字段内容怎么改变,它的样式都不会被改变。

Tag标签: ActionScript
posted on 2010-07-05 12:27 发布:水寒冰 阅读(155) 评论(0) 收藏 所属分类: FLASH AS
  • 评论
  • 点击刷新
  • [使用Ctrl+Enter键可以直接提交]

表情图标

[smile][confused][cool][cry][eek][angry][wink][sweat][lol][stun][razz][redface][rolleyes][sad][yes][no][heart][star][music][idea]
Advertise
Category
Time Counter

离十一还有

Recent Article
Statistics
Recent Comments
Archive
Links
Support
《良机》 鲜果阅读器订阅图标
 
TOP