zoukankan      html  css  js  c++  java
  • Cocos2dx-js 小技巧 Label的换行

    项目在做聊天的时候会用到。因为用setContentSize方法太局限! 
    因为 :假如我们做的是一个类似微信的聊天对话框,这种对话框一个特点就是会随着你文字长度的改变而改变。 
    而如果我们在这里讲Label的尺寸给写死了,那对话框也就跟着失去它的灵活性了。

    LabelTTF有一个好处就是会在字符串中有” ”的地方换行,利用这个特点可以写一个自动换行的函数. 
    根据传入一行的长度和字串内容,来重新拼接字符串,将“ ”加在每一行的末尾。 
    例如:

    var str = "star is not star in the sky,it is on heart"

    那么根据上述逻辑,如果传入行的长度为10,那么重新拼接后的字串为 
    “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("
    "); //从容器逐一取出之前裁剪好的一段段字符串,分别在字符串后面加上换行符。concat类似胶水,将
    粘到字符串后面
        }
    
    
        //   resultStr.pop_back();  //这一句是将最后一个多余的
    给删掉
    
    
        return resultStr;
    }

    resultStr就是重新拼接后的字符串。

    然后我们用它:

    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);

    效果如图:

    http://img.blog.csdn.net/20140401214232765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RhcnQ1MzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast

  • 相关阅读:
    大型网站架构演化发展历程
    用Haproxy给MySQL做负载均衡
    一致性hash和虚拟节点
    Apache + Tomcat +mod_jk 实现集群
    浅谈时钟的生成(js手写代码)
    javascript
    vue-cli中安装方法
    webstorm激活
    解决webstorm卡顿问题
    gulp前端自动化环境搭建详解
  • 原文地址:https://www.cnblogs.com/guangyun/p/8397909.html
Copyright © 2011-2022 走看看