109 lines
2.5 KiB
JavaScript
109 lines
2.5 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, '37e453kd+9NootkiTIzAXZw', 'nx.vb.base');
|
||
|
|
// Scripts/nx/cmp/vbs/nx.vb.base.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
/******************************************************************
|
||
|
|
* Copyright(C) 2019 - 2020 Nx Studio
|
||
|
|
*
|
||
|
|
* 视图绑定组件--基类
|
||
|
|
*
|
||
|
|
* 2018.05.18
|
||
|
|
******************************************************************/
|
||
|
|
|
||
|
|
// 可绑定的类型
|
||
|
|
var BindType = cc.Enum({
|
||
|
|
None: 0,
|
||
|
|
// 无
|
||
|
|
Frame: 1,
|
||
|
|
// 框架
|
||
|
|
// Account : 2, // 账号
|
||
|
|
// Role : 3, // Role
|
||
|
|
// Client : 4, // 客户端
|
||
|
|
// Game : 5, // 子游戏
|
||
|
|
DotTip: 11,
|
||
|
|
// 点提示
|
||
|
|
Cd: 12 // 时间cd
|
||
|
|
});
|
||
|
|
|
||
|
|
cc.Class({
|
||
|
|
"extends": cc.Component,
|
||
|
|
properties: {
|
||
|
|
bindType: {
|
||
|
|
"default": BindType.None,
|
||
|
|
type: BindType,
|
||
|
|
displayName: "绑定对象(标准)",
|
||
|
|
tooptip: "该控件目前能监听全局存在的视图"
|
||
|
|
},
|
||
|
|
bindTypeEx: {
|
||
|
|
"default": "",
|
||
|
|
displayName: "绑定对象(自定义)",
|
||
|
|
tooptip: "自定义视图指向"
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 展示
|
||
|
|
onLoad: function onLoad() {
|
||
|
|
// 设置扩展目标
|
||
|
|
if (!this.target) {
|
||
|
|
this.setTargetEx(this.bindTypeEx);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 关闭
|
||
|
|
onDestroy: function onDestroy() {
|
||
|
|
// 清除监听
|
||
|
|
if (window.nx && nx.frame && this.target) {
|
||
|
|
this.target.vunbind(this);
|
||
|
|
this.target = null;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 设定目标
|
||
|
|
setTarget: function setTarget(_tar) {
|
||
|
|
// 清除监听
|
||
|
|
if (this.target) {
|
||
|
|
this.target.vunbind(this);
|
||
|
|
this.target = null;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 目标更新
|
||
|
|
this.target = _tar;
|
||
|
|
},
|
||
|
|
// 设置扩展目标
|
||
|
|
setTargetEx: function setTargetEx(_tkey) {
|
||
|
|
this.bindTypeEx = _tkey;
|
||
|
|
|
||
|
|
// 设定目标
|
||
|
|
var tar = this.getBindTarget(this.bindType, this.bindTypeEx);
|
||
|
|
this.setTarget(tar);
|
||
|
|
},
|
||
|
|
// 获取目标
|
||
|
|
getBindTarget: function getBindTarget(_btype, _vbd) {
|
||
|
|
// 确认目标
|
||
|
|
var target = null;
|
||
|
|
switch (_btype) {
|
||
|
|
case BindType.Frame:
|
||
|
|
target = nx.frame;
|
||
|
|
break;
|
||
|
|
case BindType.DotTip:
|
||
|
|
target = nx.mTip;
|
||
|
|
break;
|
||
|
|
case BindType.Cd:
|
||
|
|
target = nx.mCd;
|
||
|
|
break;
|
||
|
|
// case BindType.Client: target = hall; break;
|
||
|
|
// case BindType.Game: target = game; break;
|
||
|
|
// case BindType.Account: target = hall; break;
|
||
|
|
// case BindType.Role: target = hall.mRole; break;
|
||
|
|
default:
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
// VBD对象
|
||
|
|
if (!target && nx.dt.strNEmpty(_vbd)) {
|
||
|
|
target = nx.views.queryBindTarget(_vbd);
|
||
|
|
}
|
||
|
|
return target;
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|