Flash ActionScript3 一種按照真實佔位寬度截短字串的方法
阿新 • • 發佈:2019-02-14
必要的時候我們需要將過長的字串截短為較短長度,比如最多顯示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'>阿拉斯加...