"use strict"; cc._RF.push(module, '257bapRYIpJL6rlSmd/+SRN', 'bridge.window'); // Scripts/zbridge/ui/bridge.window.js "use strict"; /******************************************************************************* * * 老版本桥接过渡 --- BaseView过渡到组件化模式 * * ******************************************************************************/ cc.Class({ "extends": cc.Component, properties: { BKEY: { "default": "BRIDGE_WINDOW" } }, // 重载:参数打开 onOpenConfigs: function onOpenConfigs(_params) {}, // 重载:关闭前 onPreClosed: function onPreClosed() {}, // 不要重载 bindView: function bindView(_baseView) { this.baseView = _baseView; }, // 不要重载 openConfigs: function openConfigs(_params) { if (!this.baseView) { nx.error("缺少桥接绑定BaseView!"); } // 统一关闭调用支持 this.cbClose = null; if (_params) { this.cbClose = _params.cbClose || null; } this.onOpenConfigs(_params); }, // 销毁 onDestroy: function onDestroy() { // 视图监听释放 this.vunbind(); // 事件监听释放 this.unbindGEvents(); // 关闭通告 if (this.cbClose) { nx.dt.fnInvoke(this.cbClose); this.cbClose = null; } }, // 关闭 close: function close() { // 关闭前 this.onPreClosed(); // 视图监听释放 this.vunbind(); // 事件监听释放 this.unbindGEvents(); // 关闭view if (this.baseView) { this.baseView.close(true); } }, // 延迟关闭 delayClose: function delayClose(_delay) { var _this = this; if (_delay === void 0) { _delay = 0.01; } this.scheduleOnce(function () { _this.close(); }, _delay); }, // 桥接视图监听 vbind: function vbind(_lst) { if (nx.bridge && nx.dt.arrNEmpty(_lst)) { nx.bridge.vbind(this, _lst); } }, // 桥接监听视图解除 vunbind: function vunbind() { if (window.nx && nx.bridge) { nx.bridge.vunbind(this); } }, // 全局事件监听 bindGEvent: function bindGEvent(_id, _cb) { this.eHandlers = this.eHandlers || []; // 重复性检查 if (CC_DEBUG) { for (var i in this.eHandlers) { var binder = this.eHandlers[i]; if (binder && binder.id == _id) { nx.error("[BridgeWindow]重复监听事件:", _id); return; } } } var tag = gcore.GlobalEvent.bind(_id, _cb); this.eHandlers.push({ id: _id, tag: tag }); }, // 全局监听解除(一次性) unbindGEvents: function unbindGEvents() { if (window.nx) { if (nx.dt.arrEmpty(this.eHandlers)) { return; } this.eHandlers.forEach(function (_binder) { gcore.GlobalEvent.unbind(_binder.tag); }); this.eHandlers = []; } } }); cc._RF.pop();