对于消耗>拥有 和 消耗<=拥有有不同颜色处理且都需要显示的情况,增加居中显示的接口
注:以左侧widget初始坐标为中心,左侧锚点在最右,右侧锚点最左
CocosUtility.setupTwoWidgetMiddle = function(rootWidget, widgetInfo) {
if(!rootWidget || !widgetInfo || !widgetInfo.name1 || !widgetInfo.name2) {
return;
}
var pWidget1 = ccui.Helper.seekWidgetByName(rootWidget, widgetInfo.name1);
var pWidget2 = ccui.Helper.seekWidgetByName(rootWidget, widgetInfo.name2);
if(pWidget1 && pWidget2) {
var step = widgetInfo.step || 0;
pWidget1.midposx = (pWidget1.midposx != null) ? pWidget1.midposx : pWidget1.getPositionX();
var posX = (widgetInfo.midPos != null) ? widgetInfo.midPos : pWidget1.midposx;
var width1 = pWidget1.getContentSize().width;
var width2 = pWidget2.getContentSize().width;
pWidget1.setPositionX(posX-(width1+step+width2)/2+width1);
pWidget2.setPositionX(posX+(width1+step+width2)/2-width2);
}
};
调用:
CocosUtility.setupTwoWidgetMiddle(material, {name1: this.UI_TEXT_COSTHAVE, name2: this.UI_TEXT_COSTNEED});
另外一种多颜色穿插实现方式,把多个文字添加到一个layout上统一为一个整体:
LayoutConfig.creatreStringByConf = function() {
if(arguments.length == 0) {
return;
}
var array = arguments[0];
if(array == null) {
return;
}
var offset_x = 0;
var offset_y = 0;
var layout_height = 0;
var layout = ccui.Layout.create();
layout.setLayoutType(ccui.Layout.ABSOLUTE);
var p_i = 0;
for(var i = 0; i < array.length; i++) {
var sub = array[i];
var conf = arguments[(i + 1)];
if(conf == null) {
continue;
}
var text = ccui.Text.create();
text.setAnchorPoint({x: 0.0, y: 0.5});
text.setFontSize(conf.f_size);
text.setFontName("common/font/DFGB_Y7_0.ttf");
text.setString(sub);
text.setColor(conf.c);
text.disableEffect();
layout.addChild(text);
text.setPosition(cc.p(offset_x, text.getContentSize().height * 0.5));
offset_x += text.getContentSize().width;
layout_height = layout_height < text.getContentSize().height ? text.getContentSize().height : layout_height;
}
layout.setContentSize(cc.size(offset_x, layout_height));
offset_x = 0;
var child = layout.getChildren();
for(var i in child) {
var c = child[i];
if(c) {
c.setPositionX(offset_x);
offset_x += child[i].getContentSize().width;
}
}
layout.setContentSize(cc.size(offset_x, layout_height));
return layout;
};
调用:
var array = ["今日免费:",times,"/"+timesMax+"次"];
LayoutConfig.creatreStringByConf(array, colorWhite, colorYellow, colorWhite)