将 newText 参数指定的字符串追加到文本字段的文本的末尾。
在AS3中,如果代码写成text_txt.text += "add new content" 或 text_txt.text = text_txt.text + "add new content"时,在发布SWF的时候,就会弹出警告信息,建议使用appendText(newText:String)的方法。
当用appendText(newText:String)方法时,newText字串不要使用"r"来换行,而应使用"n",如果是使用"r",则会在倒数的第二个字符开始插入"r",而不是末尾。而用"n"就不会存在这个问题,如果是忽略appednText的警告而继续使用text_txt.text += “add new contentr”就会存在之前说的问题,
appendText方法还会存在另一个问题,当我对一个文本框使用添加文字后,则TextField.scrollV会被初始为1,不管当前值为何值。我不清楚这是bugs还是本意就是要这样的。
要解决这样的问题,只有:
var str:String = text_txt.text;
str += "add new contentr";
text_txt.text = str;
虽然这样执行效率没appendText高,但能解决scrollV的问题。
—————————————–
最后我上网找了一下关于"r"与"n"的区别,
Windows 采用 rn 是有原因的,Windows 采用了传统的英文打字机的模式。
想想看英文打字机是如何换行的呢?英文打 字机是选择将小车退回至起点,
这个过程称为回车(carriage return, CR),随后把小车调至下一行的位
置,这个过程称为 换行(line feed, LF),这样就完成了英文打字机中换
行过程。
回车(CR)在计算机中使用 ASCII 为 13(0x0D) 的字符来表示,换行(LF)使用
ASCII 为 10(0x0A) 的字符来表示。这也就是 Windows 的换行采用 rn 来表示
的原因。
———————–
在windows操作系统下,按回车换行就会生成两个字符,而在其它系统只有一个字符"n"
所以,在windows下写的xml文件,如果在<![CDATA[ … ]]>中定义的换行的字符,则要把
'rn'转为'n',否则在flash动态文本框 中就会显示为两个换行。str.split("rn").join("n");
发表回复