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'>阿拉斯加...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值