1个回答
展开全部
这个分多种情况:
既然你提到了要兼容,那么就用js来举例,跨平台性能很好。
1.字符串带/n的时候
new cc.LabelBMFont(“456789789/n789456456”,global_res.GameFont);
以上创建的,会自动换行,因为字符串内有/n,这就让使用更加灵活。可以自由的换行。
2.字符串不带/n的时候
new cc.LabelBMFont(“456789789789456456”,global_res.GameFont);
以上创建的,不会自动换行,如果调用setLineBreakWithoutSpace(false)参数传递为false,则会自动换行。该函数会达到一定长度之后换行,但是,这个长度没办法保证,会根据字体,文本大小由系统生成。贼鸡巴坑爹。
3.字符串带空格(中/英)的时候
new cc.LabelBMFont(“45678978 97894 56456”,global_res.GameFont);
以上创建的,不会自动换行,同理,如果需要其自动换行则需要调用setLineBreakWithoutSpace(false)参数传递为false。
如果需要其自动换行,在HTML5环境中,只需要调用setBoundingWidth(300)则字符串到了300的宽度时会自动换行,但是,该函数只作用于HTML5环境,并且无论是否有空格都会换行。
JSB环境中,在字符串无空格时该函数无用。需要调用setWidth(300)函数,这样它在读取到与300宽度接近的空格时,会自动换行。
所以,建议代码这样写:
if(myBmFontLabel.setWidth!=null){//html5环境
myBmFontLabel.setWidth(350);
}else{//C++环境
myBmFontLabel.setBoundingWidth(350);
}如此则可以做到两个环境兼容,并且着重注意第三点。
既然你提到了要兼容,那么就用js来举例,跨平台性能很好。
1.字符串带/n的时候
new cc.LabelBMFont(“456789789/n789456456”,global_res.GameFont);
以上创建的,会自动换行,因为字符串内有/n,这就让使用更加灵活。可以自由的换行。
2.字符串不带/n的时候
new cc.LabelBMFont(“456789789789456456”,global_res.GameFont);
以上创建的,不会自动换行,如果调用setLineBreakWithoutSpace(false)参数传递为false,则会自动换行。该函数会达到一定长度之后换行,但是,这个长度没办法保证,会根据字体,文本大小由系统生成。贼鸡巴坑爹。
3.字符串带空格(中/英)的时候
new cc.LabelBMFont(“45678978 97894 56456”,global_res.GameFont);
以上创建的,不会自动换行,同理,如果需要其自动换行则需要调用setLineBreakWithoutSpace(false)参数传递为false。
如果需要其自动换行,在HTML5环境中,只需要调用setBoundingWidth(300)则字符串到了300的宽度时会自动换行,但是,该函数只作用于HTML5环境,并且无论是否有空格都会换行。
JSB环境中,在字符串无空格时该函数无用。需要调用setWidth(300)函数,这样它在读取到与300宽度接近的空格时,会自动换行。
所以,建议代码这样写:
if(myBmFontLabel.setWidth!=null){//html5环境
myBmFontLabel.setWidth(350);
}else{//C++环境
myBmFontLabel.setBoundingWidth(350);
}如此则可以做到两个环境兼容,并且着重注意第三点。
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询