zoukankan      html  css  js  c++  java
  • richtextfield xml转换为文本方法

    因为输入框有可能有只需要显示单行,并且又同时需要在输入框显示表情的变态需求。 所以当我尝试把文本设置成单行显示并且不允许换行时,发现表情不会随着超出的文字横向位移,暂时我解决的办法是在SpriteRenderer 修改此方法为:
    private function doRender():void{
    _spriteContainer.y = -textRenderer.scrollHeight;
    renderVisibleSprites();
    }
    问题暂时得以解决。

    另外,如果用现在的组件实现多人聊天功能的话,那么传输过程中必须为xml格式,如果此消息需要发送给一个普通的文本框显示,那么直接显示的是xml文档,不是非常直观。而且,有些地方输入框并不需要将表情显示出来,只需要在输出窗口 将表情显示出来,所以,我加了几个方法,能让组件导出和解析纯文本格式,如:

    测试字符[符号1]1]2[[3[符号2]4]5[[[符号3]]]6]]7][符号4]]8]]90

    其中[符号1][符号2] 此类符号表示一个表情。 我将我加的方法写出来,期待官方版本

    在RichTextField.as 中添加方法
    public function AppendText(value:String=”"):void {

    var TextString:String=”"
    var lastindex:int = -1
    var spritesArray:Array = new Array()
    var obj:Object
    for (var i:int = 0; i 1) arr.sortOn(“index”, Array.NUMERIC);

    for (var i:int = arr.length-1; i >=0; i–)
    {
    var node:String = “-[" + arr[i].src + “]-”;
    //两边的- – 短横线不知道为什么,不加上的 话[ ] 两符号没有了。
    var index:int=parseInt(arr[i].index)
    var xml:String = “”
    var txtfmt:TextFormat = textfield.getTextFormat(index, index+1)

    xml += ” ”
    xml += node

    xml+=”"
    xml += “”

    textfield.insertXMLText(index,index,xml)
    }

    if (_rtf.html)
    {
    return textfield.htmlText.split(_rtf._placeholder).join(“”);
    }else
    {
    return textfield.text.split(_rtf._placeholder).join(“”);
    }

    delete textfield
    textfield=null

    }

    并且在RichTextField中添加方法:
    public function exportText():String
    {
    return _spriteRenderer.exportText()
    }

    通过 input1.AppendText(input2.exportText()) 可以将input2的内容以纯文本的方式传递给input1

    希望这次能发布成功

  • 相关阅读:
    kindeditor的使用
    阅读笔记(三)
    阅读笔记(二)
    架构漫谈
    阅读笔记(一)
    hdfs
    暑假周总结八
    暑假周总结七
    暑假周总结六
    暑假周总结五
  • 原文地址:https://www.cnblogs.com/tinytiny/p/2881106.html
Copyright © 2011-2022 走看看