Flash ActionScript3 一种按照真实占位宽度截短字符串的方法
??
必要的时候我们需要将过长的字符串截短为较短长度,比如最多显示4个中文字,多余4个字只显示4个字(英文则应该是8个字母)等情况。 ? 直接上函数: function getChar(_str:String,_l:int):String { var _ba:ByteArray = new ByteArray ; _ba.writeMultiByte (_str,""); if (_ba.length < _l) return _str; _ba.position = 0; return _ba.readMultiByte(_l,"")+"..."; } ? 参数解释: _str:String ?原字符串 _l:int ?你想截短后保留的长度,另外,每个中文长度是2,英文是1, ? 注意:此方法不支持直接截短html格式字符,因为你的标签也算字符串的长度了,就是说如果你想把你TextField中的html字符串截短,你必须计算出你的真实文字前面的标签一共有多长,标签长度加上你想截短的长度才会得到你想要的,再手动增加结尾需要的标签。 ? 我们已以下3个字符串来测试此方法: var str1:String = "阿拉斯加的发生激烈反抗精神浪蝶狂蜂加拉塞克";? var str2:String = "asdfsdfsdfsdf"; var str3:String = "<font color='#ff0000'>阿拉斯加的发生激烈反抗精神浪蝶狂蜂加拉塞克</font>"; 结果为: trace(getChar(str1,8)); //阿拉斯加... trace(getChar(str2,8)); //asdfsdfs... trace(getChar(str3,8)); //<font co... trace(getChar(str3,30));?//<font color='#ff0000'>阿拉斯加... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |