Files
fc/dev/project/library/imports/f0/f0ace4af-521f-47de-9121-a5f1a0e1a85d.js
2026-05-24 10:21:26 +08:00

884 lines
31 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use strict";
cc._RF.push(module, 'f0aceSvUh9H3pEhpfGg4ahd', 'utils');
// Scripts/util/utils.js
"use strict";
var _require = require("define"),
WinType = _require.WinType,
PlayerAction = _require.PlayerAction;
// 工具类的全局
window.Utils = {
_effect_once_playing: false,
_effect_once_last: null,
_effect_once_list: null,
keyfind: function keyfind(key, val, arr) {
for (var i = 0, n = arr.length; i < n; i++) {
if (arr[i][key] == val) {
return arr[i];
}
}
return null;
},
randomNum: function randomNum(min, max) {
if (max > min) {
return Math.round(Math.random() * (max - min)) + min;
} else {
return min;
}
},
randomStr: function randomStr(min, max, strRange) {
var n = this.randomNum(min, max);
strRange = strRange || '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var str = "";
var len = strRange.length;
for (var i = 0; i < n; i++) {
var pos = this.randomNum(1, len) - 1;
str += strRange.charAt(pos);
}
return str;
},
TI18N: function TI18N(str) {
return str;
},
// 获取单位配置
getUnitConfig: function getUnitConfig(id) {
return gunitdata("data_unit", id) || gunitdata("data_unit1", id) || gunitdata("data_unit2", id) || gunitdata("data_unit3", id); //gdata( "unit_data", id, false) || gdata( "unit_data1", id, false) || gdata("unit_data2", id)|| gdata("unit_data3", id)
},
// 获取物品配置数据
getItemConfig: function getItemConfig(id) {
return gitemdata(id); //gdata( "item_data", "data_unit1", id, false ) || gdata( "item_data", "data_unit2", id, false ) || gdata( "item_data", "data_unit3", id, false ) || gdata( "item_data", "data_unit4", id, false ) || gdata( "item_data", "data_unit5", id, false )
},
// 拼key
getNorKey: function getNorKey() {
var key = "";
for (var index = 0; index < arguments.length; index++) {
var element = index < 0 || arguments.length <= index ? undefined : arguments[index];
if (key != "") {
key = key + "_";
}
key = key + element;
}
return key;
},
isEmpty: function isEmpty(obj) {
for (var objIndex in obj) {
return false;
}
return true;
},
//返回数组或对象的下一个索引值
//(实际只能用来判断是否为空,不能用来循环获取索引值)
next: function next(arr) {
for (var k in arr) {
if (arr[k] != null) {
return true;
}
}
return null;
},
// 多元素小到大
tableLowerSorter: function tableLowerSorter(array) {
return function (a, b) {
if (a == null || b == null) {
return 1;
}
for (var index = 0; index < array.length; index++) {
var element = array[index];
if (a[element] == null || b[element] == null) {
return 1;
}
if (a[element] != b[element]) {
return a[element] - b[element];
}
}
return 1;
};
},
// 多元素从大到小
tableUpperSorter: function tableUpperSorter(array) {
return function (a, b) {
if (a == null || b == null) {
return -1;
}
for (var index = 0; index < array.length; index++) {
var element = array[index];
if (a[element] == null || b[element] == null) {
return -1;
}
if (a[element] != b[element]) {
return b[element] - a[element];
}
}
return -1;
};
},
/*按需排序
temp_tab 需要比较的表项中的多个key值,用于多参数的比较
temp_tab = {{"参数名字", true}, {"参数名字", false}...}
--true 表示 大到小 false 表示 小到大 */
tableCommonSorter: function tableCommonSorter(temp_tab) {
return function (a, b) {
if (a == null || b == null) {
return -1;
}
for (var i = 0; i < temp_tab.length; i++) {
var element = temp_tab[i];
if (a[element[0]] == null || b[element[0]] == null) {
return -1;
}
var is_sort = element[1] || false;
if (is_sort) {
if (a[element[0]] != b[element[0]]) {
return b[element[0]] - a[element[0]];
}
} else {
if (a[element[0]] != b[element[0]]) {
return a[element[0]] - b[element[0]];
}
}
}
return -1;
};
},
// 创建一个需要require的类
createClass: function createClass(window_name, any) {
if (window_name == null || window_name == "") {
cc.error("创建窗体失败,没有给具体名字 ========>>");
}
var WindowClass = require(window_name);
return new WindowClass(any);
},
/**
* 播放一次特效,临时创建一个节点数据,播放完特效之后移除
* @param {*} effect_name 特效资源名
* @param {*} x 坐标X
* @param {*} y 坐标Y
* @param {*} parent 父节点
* @param {*} finish_call 播放完的回调
* @param {*} action_name 播放动作,默认为action
* @param {*} scale 缩放比,理论上不需要设置
*/
playEffectOnce: function playEffectOnce(effect_id, effect_name, x, y, parent, finish_call, action, sc) {
if (parent == null) return;
var action_name = action || PlayerAction.action;
var scale = sc || 1;
// 创建临时的节点
var node = new cc.Node("once_effect");
node.setAnchorPoint(0.5, 0.5);
if (scale != 1) {
node.scale = scale;
}
node.setPosition(x, y);
parent.addChild(node);
var effect_spine = node.addComponent(sp.Skeleton);
var res_path = PathTool.getSpinePath(effect_id, effect_name, false);
// 监听事件
effect_spine.setCompleteListener(function (trackEntry, loopCount) {
var animationName = trackEntry.animation ? trackEntry.animation.name : "";
if (animationName == action_name) {
node.removeFromParent();
nx.dt.fnInvoke(finish_call, true);
}
}.bind(this));
// 加载资源
cc.loader.loadRes(res_path, sp.SkeletonData, function (err, obj) {
if (err) {
nx.dt.fnInvoke(finish_call, true);
node.removeFromParent();
return;
}
effect_spine.skeletonData = obj;
effect_spine.setAnimation(0, action_name, false);
});
},
//计算字符串长度,汉字算两个长度
//(如果汉字算一个长度,直接string.length可以获得)
getByteLen: function getByteLen(val) {
var len = 0;
for (var i = 0; i < val.length; i++) {
var a = val.charAt(i);
if (a.match(/[^\x00-\xff]/ig) != null) {
len += 2;
} else {
len += 1;
}
}
return len;
},
//按钮置灰,并关闭事件,btn:cc.Button, bool:true是变灰
setGreyButton: function setGreyButton(btn, bool) {
if (bool == null) bool = true;
if (btn) {
btn.interactable = !bool;
btn.enableAutoGrayEffect = bool;
}
},
getTimeInterval: function getTimeInterval(time_stamp) {
if (!(time_stamp >= 0)) return;
var srver_time = client.socket.getTime();
return time_stamp - srver_time;
},
// 将秒转为标准时间, 参数:秒数, 是否加0
changeIntevalToDate: function changeIntevalToDate(secondNum, n_addo) {
if (!(secondNum >= 0)) return;
var daySecond = 24 * 60 * 60;
var hourSecond = 60 * 60;
var day = Math.floor(secondNum / daySecond);
var remainSecondM = secondNum % daySecond;
var hour = Math.floor(remainSecondM / hourSecond);
var remainSecondS = remainSecondM % hourSecond;
var minute = Math.floor(remainSecondS / 60);
var second = Math.ceil(remainSecondS % 60);
if (n_addo) {
return {
D: day,
H: hour,
M: minute,
S: second
};
}
var add0 = function add0(m) {
return m < 10 ? '0' + m : m;
};
return {
D: day,
H: add0(hour),
M: add0(minute),
S: add0(second)
};
},
//-----------------------moneytool---start-------------//
//转换金钱格式
getMoneyString: function getMoneyString(value, is_symbol, isFixed) {
if (is_symbol == null) is_symbol = true;
if (value == null) return 0;
// if(value < 1000){
if (value < 100000) {
if (is_symbol) return this.moneyFormat(value);else return value;
} else if (value < 1000000 && value >= 1000) {
value = Utils.moneyFormat2(value, isFixed); // Math.floor( value * 0.001 );
if (is_symbol) return cc.js.formatStr(this.moneyFormat(value), "K");else return cc.js.formatStr(value, "K");
} else if (value < 1000000000 && value >= 1000000) {
var fix2 = 1;
if (!isFixed) {
fix2 = 1;
}
value = Utils.moneyFormat2(value, fix2); // value = Math.floor( value * 0.0001 );
if (is_symbol) return cc.js.formatStr(this.moneyFormat(value), "M");else return cc.js.formatStr(value, "M");
} else {
value = Utils.moneyFormat2(value, 1); //value = Math.floor( value * 0.000001 );//00000001
if (is_symbol) return cc.js.formatStr(this.moneyFormat(value), "B");else return cc.js.formatStr(value, "B");
}
},
moneyFormat2: function moneyFormat2(value, index) {
if (index === void 0) {
index = 1;
}
var base = 1000;
var truevalue = value;
while (truevalue >= base) {
truevalue = truevalue / base;
}
if (index != 3) {
truevalue = truevalue.toFixed(2);
}
return truevalue;
},
//价钱里面加上逗号
moneyFormat: function moneyFormat(value) {
var sign = "";
if (value < 0) {
sign = "-";
value = value * -1;
}
if (value < 1000) return String(value);
var arr = this.moneySplit(String(value), "");
var n = arr.length;
var i = n % 3;
if (i == 0) {
i = 4;
}
while (i < n) {
arr.splice(i, 0, ",");
i = i + 4;
n = n + 1;
}
return sign + this.Join(arr, "");
},
moneySplit: function moneySplit(source_str, split_str) {
if (split_str.length == 0) {
var arr = [];
for (var i = 0; i < source_str.length; i++) {
arr.push(source_str.substring(i, i + 1));
}
return arr;
} else {
return this.Split(source_str, split_str);
}
},
//-----------------------moneytool---end-------------//
// 以某个分隔符为标准,分割字符串
// @param split_string 需要分割的字符串
// @param splitter 分隔符
// @return 用分隔符分隔好的table
Split: function Split(split_string, splitter) {
var split_result = {};
var search_pos_begin = 0;
while (true) {
var find_pos_begin = split_string.indexOf(splitter, search_pos_begin);
var find_pos_end = splitter.length + find_pos_begin;
if (find_pos_begin == -1) break;
split_result[Object.keys(split_result).length + 1] = split_string.substring(search_pos_begin, find_pos_begin - 1);
search_pos_begin = find_pos_end + 1;
}
if (search_pos_begin <= split_string.length) {
split_result[Object.keys(split_result).length + 1] = split_string.substr(search_pos_begin);
}
return split_result;
},
// 以某个连接符为标准,返回一个table所有字段连接结果
// @param join_table 连接tablearray
// @param joiner 连接符
// @param return 用连接符连接后的字符串
Join: function Join(join_table, joiner) {
if (joiner == null) {
return join_table.join("");
} else {
return join_table.join(joiner);
}
},
//区分服务器名称
transformNameByServ: function transformNameByServ(name, srv_id) {
var tmpName = name;
if (srv_id == null || name == null) return tmpName;
if (name) {
if (tmpName.indexOf("【") != -1) {
return tmpName;
}
}
if (!require("role_controller").getInstance().isTheSameSvr(srv_id)) {
var vo = require("role_controller").getInstance().getRoleVo();
if (vo) {
var listOr = this.Split(srv_id, "_");
var listMe = this.Split(vo.srv_id, "_");
if (listOr[2] && listMe[1] && listOr[1] != listMe[1]) {
tmpName = cc.js.formatStr(nx.text.getKey("msg_utils"), tmpName);
} else if (Object.keys(listOr).length > 1) {
tmpName = cc.js.formatStr(nx.text.getKey("msg_utils_server"), listOr[Object.keys(listOr).length], tmpName);
}
if (srv_id == "robot_1") tmpName = name;
}
}
return tmpName;
},
// 配置格式装换
splitDataStr: function splitDataStr(content) {
var result = content;
while (result.indexOf("{") != -1) {
var i = result.indexOf("{");
var n = result.indexOf("}");
var temp = result.substring(i, n + 1);
var target = temp.substring(1, temp.length - 1);
var list = this.Split(target, ":");
var str = cc.js.formatStr("<color=%s>%s</color>", gdata("color_data", "data_color3", parseInt(list[1])), list[2]);
result = result.replace(temp, str);
}
var RoleController = require("role_controller");
var role_vo = RoleController.getInstance().getRoleVo();
if (role_vo) {
result = result.replace(/~n/g, role_vo.name);
}
return result;
},
//desc:创建一个普通文本
createLabel: function createLabel(font_size, text_color, line_color, x, y, text_content, parent_wnd, line_num, anchorpoint, font) {
font_size = font_size || 20;
var node = new cc.Node();
node.setAnchorPoint(anchorpoint || cc.v2(0, 0));
var label = node.addComponent(cc.Label);
label.fontSize = font_size;
label.horizontalAlign = cc.macro.TextAlignment.CENTER;
label.verticalAlign = cc.macro.TextAlignment.CENTER;
if (text_color == null) text_color = new cc.Color(0xff, 0xff, 0xff, 0xff);
node.color = text_color;
if (line_color) {
var line = node.addComponent(cc.LabelOutline);
line.color = line_color;
line.width = line_num || 1;
}
x = x || 0;
y = y || 0;
node.setPosition(x, y);
if (text_content != null) label.string = text_content;
if (parent_wnd) parent_wnd.addChild(node);
return label;
},
//desc:创建富文本
createRichLabel: function createRichLabel(fontsize, textcolor, ap, pos, lineHeight, max_width, parent_wnd, align) {
var node = new cc.Node();
node.setAnchorPoint(ap || cc.v2(0, 0));
node.setPosition(pos || cc.v2(0, 0));
var label = node.addComponent(cc.RichText);
if (textcolor == null) textcolor = new cc.Color(0xff, 0xff, 0xff, 0xff);
label.fontSize = fontsize;
label.horizontalAlign = cc.macro.TextAlignment.CENTER;
label.verticalAlign = cc.macro.TextAlignment.CENTER;
if (align == "left") {
label.horizontalAlign = cc.macro.TextAlignment.LEFT;
} else if (align == "right") {
label.horizontalAlign = cc.macro.TextAlignment.RIGHT;
}
label.lineHeight = lineHeight || fontsize + 4;
node.color = textcolor;
label.maxWidth = max_width || 300;
if (parent_wnd) parent_wnd.addChild(node);
return label;
},
//desc:创建image
createAtlasImage: function createAtlasImage(parent, res, x, y, anchorPoint, usePlist, zorder, is_Scale9) {
var node = new cc.Node();
var image = node.addComponent(cc.Sprite);
if (res != null) {
nx.gui.setAtlasFrame(image, "", res);
}
if (anchorPoint == null) {
node.setAnchorPoint(cc.v2(0.5, 0.5));
} else {
node.setAnchorPoint(anchorPoint);
}
if (is_Scale9 == true) {
image.type = cc.Sprite.Type.SLICED;
image.sizeMode = cc.Sprite.SizeMode.CUSTOM;
}
if (x != null && y != null) {
node.setPosition(cc.v2(x, y));
}
if (parent) {
parent.addChild(node, zorder || 0);
}
return image;
},
getPixelFormat: function getPixelFormat(spine_name) {
if (spine_name == null) {
return cc.Texture2D.PixelFormat.RGBA4444;
}
var pf = cc.Texture2D.PixelFormat.RGBA4444;
var frist_letter = spine_name.substr(0, 1);
if (frist_letter == "E" && game.configs.special_spine_data) {
var pf_value = game.configs.special_spine_data.data_effect[spine_name];
if (pf_value == 1) {
pf = cc.Texture2D.PixelFormat.RGBA8888;
}
}
return pf;
},
//获取数组或对象具有真实子类的长度
getArrTrueLen: function getArrTrueLen(obj) {
var index = 0;
for (var i in obj) {
var v = obj[i];
if (v != null) {
index = index + 1;
}
}
return index;
},
//获取数组或对象的长度
getArrLen: function getArrLen(obj) {
if (obj instanceof Array) {
return obj.length;
} else {
return Object.keys(obj).length;
}
},
// 延迟动作
delayRun: function delayRun(obj, delay_time, fun) {
nx.error("delayRun该方法已弃用,遇到及时修改");
if (!fun) return;
if (obj == null) {
fun();
}
var delay_fun = cc.delayTime(delay_time);
var call_fun = cc.callFunc(function () {
if (obj != null) {
fun();
}
});
obj.runAction(cc.sequence(delay_fun, call_fun));
},
/**
* 统一处理点击事件,为了后面统一音效做处理
* @param {*} object 节点对象
* @param {*} clickback 点击回调
* @param {*} soundType 声音类型 1:普通音效 2:关闭音效 3....
*/
onTouchEnd: function onTouchEnd(object, clickback, soundType) {
nx.error("onTouchEnd该方法已弃用,遇到及时修改");
if (!object) {
if (clickback) {
clickback();
}
return;
}
object.on(cc.Node.EventType.TOUCH_END, function (event) {
Utils.playButtonSound(soundType);
if (clickback) {
clickback(event);
}
});
},
/**
* 播放音效接口
* @param {*} type 1:普通按钮音效 2:关闭按钮音效 3:标签页音效 4..自定义音效id
*/
playButtonSound: function playButtonSound(type) {
nx.error("playButtonSound该方法已弃用,遇到及时修改");
// if( !type ) return;
// var res_id = null;
// if( type == ButtonSound.Normal ) {
// res_id = "c_button1";
// } else if( type == ButtonSound.Close ) {
// res_id = "c_close";
// } else if( type == ButtonSound.Tab ) {
// res_id = "c_002";
// } else {
// res_id = type;
// }
// SoundManager.getInstance().playEffect( AUDIO_TYPE.COMMON, res_id );
},
playEffectSound: function playEffectSound(type, res_id) {
nx.error("playEffectSound该方法已弃用,请使用nx.audio.playSFX");
// SoundManager.getInstance().playEffectOnce( type, res_id );
},
playMusic: function playMusic(type, res_id, loop) {
nx.error("playMusic该方法已弃用,不需要这个方法");
// SoundManager.getInstance().playMusic( type, res_id, loop );
},
//获取随机名字
getRandomSaveName: function getRandomSaveName() {
nx.error("getRandomSaveName该方法已弃用.");
var randomName = function (str) {
var result = str;
var a = String.fromCharCode(Math.random(65, 90));
var b = String.fromCharCode(Math.random(97, 122));
var c = String.fromCharCode(Math.random(48, 57));
if (Math.random(3) % 3 == 0) {
result = result + a;
} else if (Math.random(3) % 2 == 0) {
result = result + b;
} else {
result = result + c;
}
if (this.getByteLen(result) < 12) {
result = randomName(result);
}
return result;
}.bind(this);
var usr = randomName("");
return "sy" + usr;
},
/*==============================--
--desc:获取服务器索引
--time:2018-07-22 10:54:30
--@str:
--@return [index, is_var]
--index == 0 表示 机器 或者 异域(就是无法知道是那个服的)
--is_var : 表示是否本服
--==============================--*/
getServerIndex: function getServerIndex(srv_id) {
nx.error("getServerIndex该方法已弃用.");
// if( srv_id == null ) return [ "" ]
// if( srv_id == "robot_1" || srv_id == "robot" ) { //代表机器人
// return [ 0 ]
// }
// let RoleController = require( "role_controller" );
// let vo = RoleController.getInstance().getRoleVo();
// if( vo ) {
// let listOr = srv_id.split( "_" );
// let listMe = vo.srv_id.split( "_" );
// if( listOr[ 1 ] && listMe[ 0 ] && listOr[ 0 ] != listMe[ 0 ] ) {
// return [ 0 ]
// } else if( listOr.length > 1 ) {
// if( srv_id == vo.srv_id ) {
// return [ listOr[ listOr.length - 1 ], true ]
// } else {
// return [ listOr[ listOr.length - 1 ] ]
// }
// }
// }
// return [ 0 ]
},
// 通用显示单行道具列表
// @ item_scrollview scrollview 对象
// @ item_list BackPackItem的对象列表 (注意: 需要在那边手动移除)
// @ data_list 数据列表 结构{{道具id, 数量},...} 就是策划填表的奖励道具结构
// @setting
// @content
// @isActionCallBack 是否调用ActionCallBack
// @setting.scale 缩小参数 默认 1
// @setting.start_x 两边对应道具的间隔
// @setting.space_x 道具之间的间隔
// @setting.max_count item_scrollview最大能显示item数量..用于判断是否可以左右滑动 不填则可以移动
// @setting.is_center 是否不满就居中 max_count必须有值
// @setting.show_effect_id =特效id 显示对应特效 默认无
// @setting.is_tip 是否弹通用tips 默认nil
commonShowSingleRowItemList: function commonShowSingleRowItemList(item_scrollview, item_list, data_list, setting, content, isActionCallBack) {
nx.error("commonShowSingleRowItemList该方法已弃用.");
if (!item_scrollview || !data_list) {
return;
}
var item_list = item_list;
if (item_list) {
// 隐藏物品
for (var i in item_list) {
item_list[i].setVisible(false);
}
}
if (item_list == null) {
item_list = [];
}
if (data_list.length == 0) {
return;
}
// 道具列表
var setting = setting || {};
var scale = setting.scale || 1;
var start_x = setting.start_x || 5;
var space_x = setting.space_x || 5;
var max_count = setting.max_count;
var item_width = setting.item_width || 120;
var lock = setting.lock || false;
// 点击返回回调函数
var is_tip = setting.is_tip;
var callback = setting.callback || false;
var item_count = data_list.length;
item_width = item_width * scale;
var total_width = start_x * 2 + item_width * item_count + space_x * (item_count - 1);
var item_scrollview_size = content.getContentSize();
var max_width = Math.max(item_scrollview_size.width, total_width);
content.setContentSize(cc.size(max_width, item_scrollview_size.height));
if (max_count && item_count <= max_count) {
item_scrollview.off(cc.Node.EventType.TOUCH_START, item_scrollview._onTouchBegan, item_scrollview, true);
item_scrollview.off(cc.Node.EventType.TOUCH_MOVE, item_scrollview._onTouchMoved, item_scrollview, true);
item_scrollview.off(cc.Node.EventType.TOUCH_END, item_scrollview._onTouchEnded, item_scrollview, true);
item_scrollview.off(cc.Node.EventType.TOUCH_CANCEL, item_scrollview._onTouchCancelled, item_scrollview, true);
if (setting.is_center) {
start_x = (item_scrollview_size.width - total_width) * 0.5;
if (start_x < 0) {
start_x = 0;
}
}
} else {
// item_scrollview.on(cc.Node.EventType.TOUCH_START, item_scrollview._onTouchBegan, item_scrollview, true);
// item_scrollview.on(cc.Node.EventType.TOUCH_MOVE, item_scrollview._onTouchMoved, item_scrollview, true);
// item_scrollview.on(cc.Node.EventType.TOUCH_END, item_scrollview._onTouchEnded, item_scrollview, true);
// item_scrollview.on(cc.Node.EventType.TOUCH_CANCEL, item_scrollview._onTouchCancelled, item_scrollview, true);
}
content.stopAllActions();
var _setItemData = function (item, v, i, is_tip) {
item.setVisible(true);
var _x = start_x + item_width / 2 + i * (item_width + space_x);
item.setPosition(_x, item_scrollview_size.height * 0.5);
item.setData({
bid: v[0],
num: v[1]
});
item.showOrderWarLock(lock);
if (callback) {
if (isActionCallBack) {
item.addActionCallBack(function () {
callback();
}.bind(this));
} else {
item.addCallBack(function () {
callback();
}.bind(this));
}
}
if (v[2]) {
item.setExtendLabel(v[2], null, 24);
}
item.setDefaultTip(is_tip);
if (setting.show_effect_id) {
item.showItemEffect(true, setting.show_effect_id, PlayerAction.action_1, true, 1.1);
} else {
item.showItemEffect(false);
}
}.bind(this);
var item = null;
var size = item_list.length;
for (var i in data_list) {
item = item_list[i];
if (item) {
_setItemData(item, data_list[i], i, is_tip);
} else {
var dealey = i - size;
if (dealey <= 0) {
dealey = 1;
}
Utils.delayRun(content, dealey / 60, function (i, v, item, is_tip) {
if (!item_list[i]) {
item = ItemsPool.getInstance().getItem("backpack_item");
item.initConfig(true, scale);
// item.setAnchorPoint(0, 0.5)
item.setParent(content);
item.show();
item_list[i] = item;
_setItemData(item, v, i, is_tip);
}
}.bind(this, i, data_list[i], item, is_tip));
}
}
return item_list;
},
/*--通用显示空白
--@parent 父类
--@bool 显示状态 true 显示 , false 不显示
--@setting 配置信息
--setting.text 文本内容 默认: 暂无数据
--setting.pos icon显示位置 默认 父类的中心点
--setting.scale icon缩放大小 默认 1
--setting.offset_y 因图标缩放导致文本的位置需要调整 偏移量调整 默认是 -10
--setting.font_size 文本大小 默认 26
--setting.label_color 文本颜色 默认 game.configs.color_data.data_color16[175]*/
commonShowEmptyIcon: function commonShowEmptyIcon(parent, bool, setting) {
nx.error("commonShowEmptyIcon该方法已弃用.");
if (!parent) return;
if (bool) {
var setting = setting || {};
var text = setting.text || nx.text.getKey("msg_utils");
if (!parent.empty_con) {
var parent_size = parent.getContentSize();
var pos = setting.pos || cc.v2(parent_size.width * 0.5, parent_size.width * 0.5, parent_size.height * 0.5 + 10);
var scale = setting.scale || 1;
var offset_y = setting.offset_y || -110;
var label_color = setting.label_color || new cc.Color().fromHEX(game.configs.color_data.data_color16[175]);
var font_size = setting.font_size || 26;
var size = cc.size(200, 200);
parent.empty_con = new cc.Node();
parent.empty_con.setContentSize(cc.size(120, 120));
parent.empty_con.setAnchorPoint(0.5, 0.5);
parent.empty_con.setPosition(pos.x, pos.y);
parent.addChild(parent.empty_con, 10);
var bg = Utils.createImage(parent.empty_con, PathTool.getIconPath("bigbg", "bigbg_3"), 0, 0, cc.v2(0.5, 0.5), false);
bg.node.scale = scale;
parent.empty_label = Utils.createLabel(font_size, label_color, null, 0, offset_y, '', parent.empty_con, 0, cc.v2(0.5, 0.5));
} else {
parent.empty_con.active = true;
}
parent.empty_label.string = text;
} else {
if (parent.empty_con) {
parent.empty_con.active = false;
}
}
},
//通用设置倒计时 时间格式默认 TimeTool.GetTimeForFunction 此方法返回格式(需要其他的 在callback 自行处理)
//注意: 关闭panel的时候记得 doStopAllActions(label) 否则会报错
//@label 倒计时对象 label
//@less_time 剩余时间
//@setting 配置信息
//setting.label_type 文本类型(参考 CommonAlert.type.rich) ..注意:需要增加标题 和 时间颜色 才设置这个(否则没意义)
//setitng.time_title 时间标题 eg: 剩余时间:
//setitng.time_color 时间颜色 格式: #ffffff 富文本下 需要变的颜色..(在is_rich_label == true下 必填)
//setting.callback 回调函数 如果_setTimeFormatString 不能满足需求 自己用回调函数处理
commonCountDownTime: function commonCountDownTime(label, less_time, setting) {
nx.error("commonCountDownTime该方法已弃用.");
if (!label) return;
var setting = setting || {};
var callback = setting.callback; //回调函数
var label_type = setting.label_type; //文本类型
var time_title = null;
var time_color = null;
var TimeTool = require("timetool");
if (label_type && label_type == "rich") {
time_title = setting.time_title || "";
time_color = setting.time_color;
}
var _setTimeFormatString = function _setTimeFormatString(time) {
if (!label) return;
if (callback) {
callback(time);
return;
}
if (label_type && label_type == "rich" && time_color) {
if (time > 0) {
label.string = cc.js.formatStr("%s <color=%s>%s</c>", time_title, time_color, TimeTool.getTimeForFunction(time));
} else {
label.node.stopAllActions();
label.string = cc.js.formatStr("%s <color=%s>00:00:00</c>", time_title, time_color);
}
} else {
if (time > 0) {
label.string = TimeTool.getTimeForFunction(time);
} else {
label.node.stopAllActions();
label.string = "00:00:00";
}
}
};
label.node.stopAllActions();
if (less_time > 0) {
_setTimeFormatString(less_time);
label.node.runAction(cc.repeatForever(cc.sequence(cc.delayTime(1), cc.callFunc(function () {
less_time = less_time - 1;
_setTimeFormatString(less_time);
}.bind(this)))));
} else {
_setTimeFormatString(less_time);
}
},
//设置精灵变灰,递归下去
setChildUnEnabled: function setChildUnEnabled(node, status) {
var sp_status;
if (status) {
sp_status = new cc.Material.createWithBuiltin("2d-gray-sprite"); // cc.Sprite.State.GRAY;
} else {
sp_status = new cc.Material.createWithBuiltin("2d-sprite"); // cc.Sprite.State.NORMAL;
}
var sprites = node.getComponentsInChildren(cc.Sprite);
for (var i = 0; i < sprites.length; ++i) {
sprites[i].setMaterial(sp_status);
}
},
//--获取属性对应信息
// @attr_key 策划定义属性key 参考表attr_data.xml
// @attr_val 对应值..如果是百分比 传过来的是千分比
//return 属性icon路径, 属性名字, 属性值
commonGetAttrInfoByKeyValue: function commonGetAttrInfoByKeyValue(attr_key, attr_val) {
if (!attr_key || !attr_val) return;
var attr_name = game.configs.attr_data.data_key_to_name[attr_key];
if (attr_name) {
var PartnerCalculate = require("partner_calculate");
var is_per = PartnerCalculate.isShowPerByStr(attr_key);
if (is_per == true) {
attr_val = attr_val / 10 + "%";
}
var res = PathTool.getAttrIconRes(attr_key);
return {
res: res,
attr_name: attr_name,
attr_val: attr_val,
icon: attr_key
};
}
},
tableInsert: function tableInsert(arr, val) {
arr.push(val);
}
};
cc._RF.pop();