首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

cocos2d-html5心得-label换行

2013-11-06 
cocos2d-html5经验-label换行使用 cocos2d-html5 时,可以通过 cc.LabelTTF 显示的文本,但是不会自动换行,

cocos2d-html5经验-label换行

使用 cocos2d-html5 时,可以通过 cc.LabelTTF 显示的文本,但是不会自动换行,需要要\n来换行,如果遇到需要自动换行的情况,可以参考http://www.imququ.com/post/cocos2d-html5-labelttf.html提到的方法,这里做下搬运工.

首先,我们需要获取指定文本的宽度,可以通过创建一个临时 LabelTTF 来完成:

?function?getStrWidth(str, fontName, fontSize) {????var?tmpLabel = cc.LabelTTF.create(str, fontName, fontSize);????return?tmpLabel.getContentSize().width;}接着,就可以循环插入 \n 了。大概思路是指定一个差不多的初始值 L(可以用指定宽度 width 除以字体大小),截出 0 到 L 位置的字符串,用 getStrWidth 计算宽度,如果比我们指定的宽度 width 大,L--,继续比较;否则 L++ 继续。直到 L 个字符宽度和我们指定宽度刚好相等(很小的概率),或者 L 个字符长度不够,但 L+1 长度又多了的情况下,可以确定这一行可以放这 L 个字符。然后继续处理下一行,直至字符串结束。另外就是要注意图文混排的问题

热点排行