您的位置:首页 > 其它

Flash ActionScript3 一种按照真实占位宽度截短字符串的方法

2014-05-15 13:51 323 查看

必要的时候我们需要将过长的字符串截短为较短长度,比如最多显示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'>阿拉斯加...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: