【发布时间】:2012-01-02 13:01:21
【问题描述】:
TextField 可以包含不同类型的换行符吗?
我将输入字段中的文本保存并加载到 XML 中。我将其保存为 CDATA 标记,包括换行符。
会发生这样的事情:
- 我在文本字段中输入带有换行符的文本
- 我将文本保存到 XML
- 我清空了文本字段
- 我将 xml 加载到文本字段中 - 一切看起来都符合预期,存在换行符
- 我再次保存了完全相同的文本字段(这次唯一的区别是内容是加载的而不是手动输入的)
- 这次 XML 不包含任何换行符
- 当我再次加载时,文本没有换行符
这怎么可能?
//这是一个演示问题的示例:
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);
我在 textField 中输入文本
这是 换行
然后在上面运行代码。尽管之后文本字段看起来仍然很好(显示换行符),但代码的输出显示:
<xml>
<elm><![CDATA[this is
a linebreak]]></elm>
</xml>
<xml>
<elm><![CDATA[this isa linebreak]]></elm>
</xml>
怎么可能?
【问题讨论】:
-
您的文本字段是否启用了多行属性? trace(textField.htmlText) 显示什么?
-
你的例子太复杂了,你需要把它分成更小的部分。例如,如果您只是跟踪(textField.text),您会得到什么?如果你使用 toXMLString() 而不是依赖自动字符串转换等会怎样
-
@felipermaia:
.multiline = true;用于用户输入,因此在这种情况下完全无关紧要。
标签: xml actionscript-3 text line-breaks