守望者--AIR技术交流

标题: TextInput 、TextArea 换行不得不说的秘密 [打印本页]

作者: 破晓    时间: 2015-1-8 10:05
标题: TextInput 、TextArea 换行不得不说的秘密
本帖最后由 破晓 于 2016-3-14 11:19 编辑

做了个测试发现TextInput 、TextArea 换行在标签中写和在代码中写是不一样的
TextInput 、TextArea 换行:
1.在标签中的换行:
在标签中换行 的换行符是   
     而不是 \n 或 \r;
例:
  1. <s:TextArea id="tta" text="aaa
  2. bbb \n ccc \r eee"/>
  3. <mx:TextInput id="mxtxt" height="100"  text="aaa
  4. bbb \n ccc \r eee"/>
复制代码
你可以试一下
这里显示的是
aaa
bbb \n ccc \r eee
而不是
aaa bbb
ccc
eee
2.在代码中赋值时的换行则相反,\n 或 \r有效,而 &#xd;   却无效
例:
  1. <fx:Script>
  2.   <![CDATA[
  3.     private function showText():void
  4.     {
  5.   tta.text = "aaa
  6. bbb \n ccc \r eee";
  7.   mxtxt.text = "aaa
  8. bbb \n ccc \r eee";
  9.     }
  10.   ]]>
  11. </fx:Script>

  12. <s:TextArea id="tta"/>
  13. <mx:TextInput id="mxtxt"/>
复制代码
显示结果正好相反

这里要注意的是在as3里
\n 和 \r 都是换行
而别的语言里会把 \n\r 的组合视为换行,所以有时候后台发来的数据在后台是换一行而在前台却是换两行,此时要把\r给替换成""就好了

另外:
TextField里的情况和第二种情况一样


=========================================================


\r 回车
\n 换行
XML中的回车   &#xd;  

MXML中还可以这样:
<s:TextInput>
        <s:text><![CDATA[你好
Hello]]></s:text>
</s:TextInput>





欢迎光临 守望者--AIR技术交流 (http://www.airmyth.com/)