1
import flash.text.TextField;
var txtBack:TextField=new TextField();

txtBack.text="\n";

trace(txtBack.text=="\n");
trace(txtBack.text=="");

为什么它会跟踪错误?

4

2 回答 2

0

好的,我已经检查过了,当您将text属性分配给 TextField 时,它会调用隐式trim(),或仅删除尾随换行符。一个简单的测试是这样的:

            tf = new TextField();
        tf.text = 'a'; 
        addChild(tf); // to make traces valid
        trace(tf.textHeight); // traces 15
        tf.text = 'a\na'; 
        trace(tf.textHeight); // traces 30 - yes, 2 lines
        tf.text = 'a\n'; 
        trace(tf.textHeight); // traces 15!

现在,您的verticalText()函数返回了一个以换行符结尾的字符串,该字符串在您设置时被修剪tf.text,因此它不再等于verticalText()结果。

于 2013-06-07T15:56:18.620 回答
0

当我与\r.

似乎 AS3 自动将任何换行符转换为回车。

txtBack.text="\n";
trace(txtBack.text=="\r");

txtBack.text="\r";
trace(txtBack.text=="\r");

跟踪true两次。

于 2013-06-07T16:06:09.617 回答