·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]AS3截取字符长度(可用于英文和中文两种字符)

时间:2012-09-05 12:20compig.net
在flash开发中经常会遇到这样的问题,文字过长要截断的部分,中英文同样用substr截取6个加上...效果如下,看起来十分丑陋,一般来说一个中文的宽度大致和2个英文、数字或者符号的宽度相近

  在flash开发中经常会遇到这样的问题,文字过长要截断的部分,中英文同样用substr截取6个加上"..."效果如下:
  abcdef...
  甲乙丙丁戊己...
  看起来十分丑陋,一般来说一个中文的宽度大致和2个英文、数字或者符号的宽度相近,记得在PHP开发中,曾经模拟网上的做法自己改了一个截字的方法,地址: http://compig.net/blog/?p=50
  关键在与获取字符的ascii码,如果大于192,则为汉字,进行长度的特殊处理:

  1. /**  
  2. * 截取字符,中文算2格,英文算1格  
  3. * @param   str  
  4. * @param   length  
  5. * @return  
  6. */  
  7. public static function cutStr(str:String = ""length:uint = 0):String  
  8. {  
  9.     var res:String = "";  
  10.     var i:uint = 0;  
  11.     var n:uint = 0;  
  12.     var str_length:uint = 0;  
  13.     while (i <str.length&&n<length*2)  
  14.     {  
  15.         if (str.charCodeAt(i)> 192)  
  16.         {  
  17.             nn = n + 2;  
  18.         }  
  19.         else  
  20.         {  
  21.             n++;  
  22.         }  
  23.         res += str.charAt(i);  
  24.         i++;  
  25.     }  
  26.     if (res.length <str.length)  
  27.     {  
  28.         res += "..";  
  29.     }  
  30.     return res;  


 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器