做动态聊天表情显示时候遇到getCharBoundaries()为Null的解决之法
来源:互联网 发布:java webservice框架 编辑:程序博客网 时间:2024/05/22 16:18
在做聊天表情时候,TextField多行自动换行情况下,经常在用getCharBoundaries()获取rectangle时候,在第二行一下会获取到null而导致无法获取字符准确位置。看了一些资料和解决方法,说是加trace后正常;自己测试了下,加了trace只能保证第一次正常,第二次输入多行照样出错,后来又查到和文本高度有关系,于是自己测试后发现解决此问题方法,分享如下:
1:在使用txt.getCharBoundaries()之前,将文本高度存入变量storeHeight变量中(var storeHeight:Number=txt.height)。
2:使用txt.getCharBoundaries()之前先让文本高度值为文本的textHeight。
3:这时候再使用txt.getCharBoundaries()将不会为Null。
4:再改变文本高度为原来高度。
code:
var storeHeight:Number=txt.height;//存储txt本来高度(因为txt高度还包括行距,和txtHeight不等。)
var phizIDs:Array=[2,3,8......]//此数组为要查找的字符的位置数组
for(var u:uint=0;u<phizIDs.length;u++)
{
txt.height=txt.textHeight;
trace(txt.getCharBoundaries(phizIDs[u]));
txt.height=storeHeight;
}
//连发15个表情trace结果如下:
(x=2, y=42, w=6, h=15)
(x=26, y=42, w=6, h=15)
(x=50, y=42, w=6, h=15)
(x=74, y=42, w=6, h=15)
(x=98, y=42, w=6, h=15)
(x=122, y=42, w=6, h=15)
(x=146, y=42, w=6, h=15)
(x=2, y=62, w=6, h=15)
(x=26, y=62, w=6, h=15)
(x=50, y=62, w=6, h=15)
(x=74, y=62, w=6, h=15)
(x=98, y=62, w=6, h=15)
(x=122, y=62, w=6, h=15)
(x=146, y=62, w=6, h=15)
1:在使用txt.getCharBoundaries()之前,将文本高度存入变量storeHeight变量中(var storeHeight:Number=txt.height)。
2:使用txt.getCharBoundaries()之前先让文本高度值为文本的textHeight。
3:这时候再使用txt.getCharBoundaries()将不会为Null。
4:再改变文本高度为原来高度。
code:
var storeHeight:Number=txt.height;//存储txt本来高度(因为txt高度还包括行距,和txtHeight不等。)
var phizIDs:Array=[2,3,8......]//此数组为要查找的字符的位置数组
for(var u:uint=0;u<phizIDs.length;u++)
{
txt.height=txt.textHeight;
trace(txt.getCharBoundaries(phizIDs[u]));
txt.height=storeHeight;
}
//连发15个表情trace结果如下:
(x=2, y=42, w=6, h=15)
(x=26, y=42, w=6, h=15)
(x=50, y=42, w=6, h=15)
(x=74, y=42, w=6, h=15)
(x=98, y=42, w=6, h=15)
(x=122, y=42, w=6, h=15)
(x=146, y=42, w=6, h=15)
(x=2, y=62, w=6, h=15)
(x=26, y=62, w=6, h=15)
(x=50, y=62, w=6, h=15)
(x=74, y=62, w=6, h=15)
(x=98, y=62, w=6, h=15)
(x=122, y=62, w=6, h=15)
(x=146, y=62, w=6, h=15)
(x=2, y=82, w=6, h=15)没有Null存在,多此测试均正常,头疼几天的问题终于解决了。
http://bbs.9ria.com/viewthread.php?tid=62628&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D12
- 做动态聊天表情显示时候遇到getCharBoundaries()为Null的解决之法
- QQ聊天之Android显示Gif ——在TextView中添加动态表情
- android qq聊天动态表情的实现
- 做题时候遇到的迷之问题
- 解决json接口数据中文显示为null的问题
- EditText显示QQ聊天表情
- BeanUtils.copyProperties做copy的时候,Long 字段会设置为null
- AS3 textfield.getCharBoundaries(index) 有时会返回NULL的问题解决方案
- 做WebView的时候遇到的错误
- SuperMap属性表操作中遇到的Query结果为null的问题分析及解决
- 解决DBGridEh字段为空NULL时的第三状态显示为非选中状态方法
- NGUI聊天信息中插入动态表情
- QQ/微信 聊天表情显示原理
- 小米手机显示表情中遇到的问题
- Qt 之 QQ系统表情—实现动态显示效果
- 初探基于TCP的服务器/客户端结构的聊天系统(三)之表情聊天的实现
- Android设置EditText显示输入的表情Icon(自定义的聊天有个发送表情功能,在输入框显示表情)
- 关于base64编码解码(Android编码,JS解码,案例为解决安卓端H5页面的emoji表情显示问题)
- Win32 多线程的创建方法和基本使用
- 转 『BAT文件』修改IP和电脑名的bat代码
- (转)DirectShow开发快速入门之慨述
- SQL Prompt 4 破解步骤
- 教你使用dos指令把秘密文字藏在图片里
- 做动态聊天表情显示时候遇到getCharBoundaries()为Null的解决之法
- MongoDB学习整理之查询
- 十大不可或缺的免费windows管理工具 转自51cto
- 如何安全退出已调用多个Activity的Application?
- Eclipse选中变量名,相同变量都变色显示 的设置
- 修改DNS批处理
- Linux目录结构
- MongoDB学习整理之更新
- 百度秘密研发推荐引擎技术 2011年组建百人团队