2

这里有 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);

五。

4

1 回答 1

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() 方法替换的文本,都会接收新文本的默认文本字段格式,而不是为文本插入点指定的格式。要为新文本设置默认格式,使用默认文本格式。”

于 2012-05-18T18:18:48.300 回答