[AS3]AS3截取字符长度(可用于英文和中文两种字符)
在flash开发中经常会遇到这样的问题,文字过长要截断的部分,中英文同样用substr截取6个加上...效果如下,看起来十分丑陋,一般来说一个中文的宽度大致和2个英文、数字或者符号的宽度相近
在flash开发中经常会遇到这样的问题,文字过长要截断的部分,中英文同样用substr截取6个加上"..."效果如下:
abcdef...
甲乙丙丁戊己...
看起来十分丑陋,一般来说一个中文的宽度大致和2个英文、数字或者符号的宽度相近,记得在PHP开发中,曾经模拟网上的做法自己改了一个截字的方法,地址: http://compig.net/blog/?p=50
关键在与获取字符的ascii码,如果大于192,则为汉字,进行长度的特殊处理:
- /**
- * 截取字符,中文算2格,英文算1格
- * @param str
- * @param length
- * @return
- */
- public static function cutStr(str:String = "", length:uint = 0):String
- {
- var res:String = "";
- var i:uint = 0;
- var n:uint = 0;
- var str_length:uint = 0;
- while (i <str.length&&n<length*2)
- {
- if (str.charCodeAt(i)> 192)
- {
- nn = n + 2;
- }
- else
- {
- n++;
- }
- res += str.charAt(i);
- i++;
- }
- if (res.length <str.length)
- {
- res += "..";
- }
- return res;
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...