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

希望这次能发布成功

转载于:https://www.cnblogs.com/tinytiny/archive/2013/01/29/2881106.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值