更新了更简单的片段
我正在构建一个 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
}