DefaultTextFormat与SetTextFormat

时间:2012-05-18 18:01:09

标签: actionscript-3

这里有2个代码块。

var myTextField:TextField = new TextField();
var myTextFormat:TextFormat = new TextFormat();

addChild(myTextField);

myTextFormat.font = "Arial";
myTextFormat.size = 15;
myTextFormat.color = 0x0000FF;

myTextField.text = "some text";
**myTextField.setTextFormat(myTextFormat);**

VS

var myTextField:TextField = new TextField();
var myTextFormat:TextFormat = new TextFormat();

addChild(myTextField);

myTextFormat.font = "Arial";
myTextFormat.size = 15;
myTextFormat.color = 0x0000FF;

**myTextField.defaultTextFormat = myTextFormat;**

那么,有什么区别 setTextFormat()和defaultTextFormat?为什么有两种不同的方式(一种是通过属性另一种方法)来做事。

测试了更多代码:

var my_txt:TextField =new TextField();
    my_txt.type = TextFieldType.INPUT
     var my_fmt:TextFormat = new TextFormat();
     my_fmt.color = 0xFF0000;

     my_txt.text = "this is for setTextFormat with range";
     my_txt.setTextFormat(my_fmt,0,3);

    // my_txt.text = "this is for setTextFormat without range";
    // my_txt.setTextFormat(my_fmt);

    // my_txt.defaultTextFormat = my_fmt;
    // my_txt.text = "this is for default text format";

    addChild(my_txt);

1 个答案:

答案 0 :(得分:3)

setTextFormat允许您更改文本部分的格式。查看setTextFormat的其他两个参数。设置defaultTextFormat时,它将应用于您添加到TextField的所有文本。

更多信息:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#defaultTextFormat

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#setTextFormat

编辑: setTextFormat也不适用于设置格式后插入的文本。 Adobe说 “由用户手动插入或由replaceSelectedText()方法替换的任何文本都会接收新文本的默认文本字段格式,而不是为文本插入点指定的格式。要设置新文本的默认格式,请使用defaultTextFormat 。“