ActionScript 3.0文本字段中的换行符

时间:2011-11-20 21:27:56

标签: xml actionscript-3 text line-breaks

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

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

这就是:

  1. 我在文本字段中键入包含换行符的文本
  2. 我将文本保存为XML
  3. 我清空了文本字段
  4. 我将xml加载到文本字段中 - 所有内容都按预期显示,存在换行符
  5. 我再次保存完全相同的文本字段(这次内容加载且没有手动处理的唯一区别)
  6. 这次XML不包含任何换行符
  7. 当我再次加载时,文本没有换行符
  8. 这怎么可能?

    //这是一个演示此问题的示例:

    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>
    

    怎么可能?

1 个答案:

答案 0 :(得分:0)

尝试编码文字值

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