2011-11-20 47 views
1

TextField是否可以包含不同类型的换行符?文本字段中的ActionScript 3.0换行符

我将输入字段中的文本保存并加载到XML中。我将它保存为CDATA标签,包括换行符。

这是发生了什么:

  1. I型与换行符文本到文本框
  2. 我的文本保存为XML
  3. 我空的文本框
  4. 我加载XML到textfield - 一切都看起来如预期,linebreaks
  5. 我再次保存完全相同的文本字段(唯一区别是这次内容被加载,而不是手工)
  6. 这一次的XML不包含任何换行符
  7. 当我再次加载它,该文本没有换行符

这怎么可能?

//下面是一个说明问题的例子:我进入到一个文本框的文本

这是 断行

并在其上运行的代码

var xml1 = <xml> 
       <elm/> 
      </xml>; 

xml1.elm.text = new XML("<![CDATA[" + textField.text + "]]>"); 

trace(xml1); 

textField.text=""; 
textField.appendText(xml1.elm.text()); 

var xml2 = <xml> 
       <elm/> 
      </xml>; 

xml2.elm.text = new XML("<![CDATA[" + textField.text + "]]>"); 

trace(xml2); 

。尽管之后文本字段看起来仍然很好(显示换行符),但代码的输出显示为:

<xml> 
    <elm><![CDATA[this is 
a linebreak]]></elm> 
</xml> 
<xml> 
    <elm><![CDATA[this isa linebreak]]></elm> 
</xml> 

这怎么可能?

+0

成为可与多属性的文本字段? trace(textField.htmlText)显示什么? – felipemaia

+0

你的例子过于复杂,你需要将它分解成更小的部分。例如,如果您简单地跟踪(textField.text),您会得到什么?如果使用toXMLString()而不是依靠自动字符串转换等,会发生什么。 –

+0

@felipermaia:'.multiline = true;'是用于用户输入的,因此在这种情况下将完全不相关。 – WORMSS

回答

0

尝试编码您的文本价值

xml1.elm.text = new XML("<![CDATA[" + encodeURIComponent(textField.text) + "]]>"); 
相关问题