-
解决菜鸟遇到的textField文本,用textFormat改变不了的问题
今天遇到了一个TextFiled文本改变字体颜色与大小时的可笑问题.
1.我创建一个TextField文本,代码如下:
import flash.text.TextField;
var label:TextField = new TextField();
label.htmlText = “Hello World…\nHellow”;2.我想用一个TextFormat使文本的颜色改变,代码如下:
import flash.text.TextFormat;
var labelCss:TextFormat = new TextFormat();
labelCss.color = 0xff0000;
labelCss.leading = 5;
labelCss.font = “Verdana”;3.最后我把TextFormat赋给TextField,但我看开发文档时直接使用了Textfield的setTextFormat方法,代码如下:
label.setTextFormat(labelCss);结果label一点反应都没有,后来再看flash手册,看到其中的”defaultTextFormat”属性,原来这个属性才是使用TextFormat的正确方法,
于是把代码修改成:
label.defaultTextFormat = labelCss;
若在使用setTextFormat方法,必须放在label.htmlText=”XXXXXXXX”这句的后面。就OK了.这种错误在写AS代码时经常范,flash在这方面也没有一个统一的规范,觉得有点凌乱.最后给出全部代码.
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFormat;public class styleSheet extends Sprite {
public function styleSheet() {
var labelCss:TextFormat = new TextFormat();
labelCss.color = 0xff0000;
labelCss.leading = 5;
labelCss.font = “Verdana”;
var label:TextField = new TextField();
label.defaultTextFormat = labelCss;
label.htmlText = “<body><span class=’heading’>Hello </span>World…\nHellow</body>”;
addChild(label);
}
}
}


