读书人

字符串所占现实宽度

发布时间: 2012-10-26 10:30:58 作者: rapoo

字符串所占实际宽度

??????? 在很多自定义的组件中需要动态的计算字符串的实际宽度,如果字符串都是汉字那么可以利用String.length*汉字大小,但是在实际的应用中中英文相结合是很常见的事情。

??????? 案例如下:

???????

?

?? TileList 的数据源是动态的,因此每行显示的列数也是动态的,这就需要动态的计算columnWidth,

?? columnWidth=字符串所占最大实际宽度+其他组件的宽度。

?? 笔者第一次计算的时候就犯了一个错误,首先计算出字符串所占得字节数,一个汉字占2个字节,然后总的字节数*字体大小。

?? 计算一个字符串所占的字节数长度如下:

??

?

?

有关详细信息请自己参考API.

measureText(字符串)方法返回TextLineMetrics的实例,TextLineMetrics类的width返回字符串所占的实际宽度,Flex的显示组件一般都继承自UIComponent组件,UIComponent类含有measureText方法,因此可以直接使用this.measureText(字符串).

?

?

var maxStrLength:int=0;//最大宽度for(var i:int=0;i<ac.length;i++){var item:Object=ac.getItemAt(i);item.name= item[param.name];var objLen:int=this.measureText(item.name).width;    if(objLen>maxStrLength){maxStrLength=objLen;}if(isFirst){item.sel=false;}ac.setItemAt(item,i);}

?

?

读书人网 >Web前端

热点推荐