正文:
创建一个ccui.Text添加到节目上,发现是这样的。:
文本超出的应该现实的区域。我就看Coco2D-JS的API,找到一个方法:
但是但是设置后发现没效果,就纳闷了。怎么回事???
var label = initCcuiText(str,gameConfig.g_font,40,cc.p(this.size.width/2,this.size.height/2+50),cc.hexToColor("#562304"),cc.TEXT_ALIGNMENT_CENTER); label.setTextVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_CENTER);
label.setTextAreaSize(cc.size(700,260));
this.addChild(label);
极细发现这个API,有个判断处理:
估计是官方的一个BUG吧,找半天没找到设置这个属性的方法。估计判断搞错了。我就直接在外面强行赋值为false。
var label = initCcuiText(str,gameConfig.g_font,40,cc.p(this.size.width/2,this.size.height/2+50),cc.hexToColor("#562304"),cc.TEXT_ALIGNMENT_CENTER); label.setTextVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_CENTER);
label._ignoreSize = false;
label.setTextAreaSize(cc.size(700,260));
this.addChild(label);
但是这要注意,设置完后。记得把文本上下对齐也设置一下。
······················
························
label.setTextVerticalAlignment(cc.VERTICAL_TEXT_ALIGNMENT_CENTER);
label.setTextHorizontalAlignment(cc.TEXT_ALIGNMENT_CENTER);
上面的initCcuiText方法,是我自己的写的快速构造方法,喜欢就拿去用::
function initCcuiText (string,fontName,size,point,color,ALIGNMENT) {
var text = new ccui.Text(string,fontName,size);
text.setPosition(point);
if (color != undefined) {
text.setTextColor(color);
}
if (ALIGNMENT != undefined) {
text.setTextHorizontalAlignment(ALIGNMENT);
}
return text;
}