import flash.text.TextField;
var txtBack:TextField=new TextField();
txtBack.text="\n";
trace(txtBack.text=="\n");
trace(txtBack.text=="");
为什么它会追踪错误?
答案 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
两次。