Cocos2dx 小技巧 Label的换行(js实现)
来源:互联网 发布:淘宝买家号能开店吗 编辑:程序博客网 时间:2024/05/23 02:01
项目在做聊天的时候会用到。因为用setContentSize方法太局限;
因为 :假如我们做的是一个类似微信的聊天对话框,这种对话框一个特点就是会随着你文字长度的改变而改变。
而如果我们在这里讲Label的尺寸给写死了,那对话框也就跟着失去它的灵活性了。
LabelTTF有一个好处就是会在字符串中有"\n"的地方换行,利用这个特点可以写一个自动换行的函数
根据传入一行的长度和字串内容,来重新拼接字符串,将“\n”加在每一行的末尾。
那么根据上述逻辑,如果传入行的长度为10,那么重新拼接后的字串
例如:
var str = "star is not star in the sky,it is on heart"
"star is no
t star in
the sky,it
is on hea
rt
"
现在可以贴出代码了:
Util.myWrap = function(str,length){ var beginPos = 0; //字符串的初始位置 var resultStr = ""; //返回的字符串// std::vector<std::string > str_vec; //创建一个字符串类型的顺序容器 var str_vec = []; do { str_vec.push(str.substr(beginPos,length)); //substr函数的作用类似剪刀,将str中从beginPos到length之间的字符串剪下来,单独放入容器中 if (beginPos+length >str.length) { break; //当要裁剪的长度超出str的长度,则退出循环 } else { beginPos += length; } } while (true); for (var i = 0;i < str_vec.length;++i) { resultStr = resultStr.concat(str_vec[i]).concat("\n"); //从容器逐一取出之前裁剪好的一段段字符串,分别在字符串后面加上换行符。concat类似胶水,将\n粘到字符串后面 } // resultStr.pop_back(); //这一句是将最后一个多余的\n给删掉 return resultStr;}resultStr就是重新拼接后的字符串。
然后我们用它:
<span style="font-size:14px;"><span style="white-space:pre"></span>var star_str = "star is not star in the sky,it is on heart";//先定义一个string var m_label = new cc.LabelTTF(Util.myWrap(star_str,10),"Arial",25);//创建一个label m_label.setPosition(cc.p(300,300)); self.addChild(m_label,2);</span>
效果如图:
0 0
- Cocos2dx 小技巧 Label的换行(js实现)
- Cocos2dx 小技巧 Label的换行(js实现)
- Cocos2dx 小技巧(三)Label的换行
- Cocos2dx 小技巧(三)Label的换行
- cocos2dx之Label实现换行
- Cocos2dx lua Label的换行
- [小技巧]asp.net Label 自动换行
- iOS小技巧--Label自动换行
- Cocos2dx 3.X Label的换行
- CSS实现自动换行的小技巧
- 如何实现label的换行
- cocos2dx控件-----ListView的使用(label自动换行)
- CSS网页制作时实现自动换行的小技巧
- CSS网页制作时实现自动换行的小技巧
- CSS网页制作时实现自动换行的小技巧
- CSS网页制作时实现自动换行的小技巧
- CSS网页制作时实现自动换行的小技巧
- CSS网页制作时实现自动换行的小技巧
- 【1】Two Sum
- PractByzantFaTolece Algo
- git grep 命令搜索关键词
- install composer for php 7 on CentOS 7
- springmvc框架下使用java mail发送邮件
- Cocos2dx 小技巧 Label的换行(js实现)
- js时间戳
- Flume采集数据到HDFS时,文件中有乱码
- 前端开发人员必须了解的七大技能图谱
- 服装商城APP软件开发方案
- 数据库大数据存储类型演示
- linux常用命令的英文单词缩写
- Healthy Holsteins_usaco2.1.4_codevs2044_dfs
- Android 保证Service不被杀掉(broadcast+system/app)