将TextField与新行进行比较

时间:2013-06-07 15:40:34

标签: actionscript-3 compare textfield operator-keyword

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

txtBack.text="\n";

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

为什么它会追踪错误?

2 个答案:

答案 0 :(得分: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()结果。

答案 1 :(得分:0)

当我与\r进行比较时,它会起作用。

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

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

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

跟踪true两次。