1

更新了更简单的片段

我正在构建一个 Flash swf 来检查使用 AS3 的一些 XML 文件。

我只能访问 Flex 编译器,而不是实际的 Flash IDE 或 Flashdevelop,所以我所有的 xml 检查代码都是单个 AS 文件,编译成 swf。为了显示信息,我创建并添加了一个 TextField 并调用 appendText()(我在此代码段中使用 +=)。

下面的代码段似乎没有在现有文本上设置新格式。它似乎对文本没有任何影响。

我的印象是 setTextFormat 会更改现有文本,并且在调用 setTextFormat 后添加的任何新文本都将使用 defaultTextFormat 对象。在我的代码中似乎不是这种情况。我的理解不正确吗?

public function AS3Tester()
{
    display_txt = new TextField();
    display_txt.multiline = true;
    display_txt.width = 1024;
    display_txt.height = 768;

    var tf:TextFormat = new TextFormat();
    tf.size = 12;
    tf.font = "Lucida Console";

    display_txt.defaultTextFormat = tf;
    display_txt.text = "Text Before setTextFormat\n"; //Should use default style tf
    addChild(display_txt);

    var tf2:TextFormat = new TextFormat();
    tf2.size = 18;
    tf2.color = 0xFF0000;

    display_txt.setTextFormat(tf2);

    display_txt.text += "Text after setTextFormat\n"; //previous line should use tf2, this new line should use default tf

}
4

0 回答 0