【问题标题】:ActionScript 3.0 linebreaks in textfields文本字段中的 ActionScript 3.0 换行符
【发布时间】:2012-01-02 13:01:21
【问题描述】:

TextField 可以包含不同类型的换行符吗?

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

会发生这样的事情:

  1. 我在文本字段中输入带有换行符的文本
  2. 我将文本保存到 XML
  3. 我清空了文本字段
  4. 我将 xml 加载到文本字段中 - 一切看起来都符合预期,存在换行符
  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);

我在 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


【解决方案1】:

尝试编码您的文本值

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多