Files
fc/dev/project/library/imports/2f/2f317240-d540-4ad5-be7d-e71ee158dc63.js
T

734 lines
24 KiB
JavaScript
Raw Normal View History

2026-05-24 10:21:26 +08:00
"use strict";
cc._RF.push(module, '2f317JA1UBK1b595x7hWNxj', 'cmp.wing.assemble.wnd');
// Scripts/mod/partner/wings/cmp/cmp.wing.assemble.wnd.js
"use strict";
/******************************************************************
*
* 僚机装配
*
******************************************************************/
var BridgeWindow = require("bridge.window");
var HeroController = require("hero_controller");
var BackpackController = require("backpack_controller");
var BackPackConst = require("backpack_const");
var FxSVC = require("nx.fx.sv.expand");
var ElfinEvent = require("elfin_event");
var ElfinController = require("elfin_controller");
var ItemBase = require("cmp.item.base");
cc.Class({
"extends": BridgeWindow,
properties: {
defaultScheme: {
"default": [],
type: cc.Node,
displayName: "默认"
},
svcschemeList: {
"default": null,
type: FxSVC,
displayName: "方案列表"
},
svcwingsList: {
"default": null,
type: FxSVC,
displayName: "僚机列表"
},
skill: {
"default": null,
type: cc.Node,
displayName: "技能展示"
},
buy: {
"default": null,
type: cc.Node,
displayName: "解锁按钮"
}
},
onLoad: function onLoad() {
this.bindGEvent(ElfinEvent.Elfin_Plan_Info_Event, this.freshSchemeList.bind(this));
this.bindGEvent(ElfinEvent.Elfin_Plan_Update_Event, this.freshSchemeItem.bind(this));
this.bindGEvent(ElfinEvent.Elfin_Plan_From_Info_Event, this.freshDefaultSchemeInfo.bind(this));
this.type = 100;
this.team = 1;
this.select_wing = -1;
this.sid = -1;
this.defaultLst = [];
},
onEnable: function onEnable() {
// 视图监听
this.vbind([["ShowWingPos", this.onFocusSchemeChanged.bind(this)]]);
},
// 重载:参数打开
onOpenConfigs: function onOpenConfigs(_params) {
// this.schemes = [];
// 当前选择的僚机序号
this.select_pos = 0;
this.team = _params.team;
this.type = _params.type >= 0 ? _params.type : this.type;
// console.log( _params.type + "当前的类型-------" + this.type );
if (_params.setting) {
this["default"] = _params.setting.cur_plan_data || this["default"];
}
var Elfin = ElfinController.getInstance();
Elfin.send26556();
if (this.type != 100) {
Elfin.send26555(this.type);
}
// 操作方案的当前所选的位置
// this.freshSchemeList();
},
// 重载:关闭前
onPreClosed: function onPreClosed() {
nx.bridge.vset("ShowWingPos", null);
this.svcschemeList.rebuild([]);
this.svcwingsList.rebuild([]);
},
// 刷新所有的方案列表
freshSchemeList: function freshSchemeList(_scheme) {
var _this = this;
var ElfinCtl = ElfinController.getInstance();
var model = ElfinCtl.getModel();
// if( _scheme && _scheme.plan_list ){
// _scheme.plan_list.sort( Utils.tableLowerSorter( [ "id" ] ) )
// }
this.schemes = model.getAllPlanData();
// let formLst = model.getFormOn();
// console.log( "当前的上阵或者方案信息" + JSON.stringify( formLst ) );
this.defaultLst = [];
this.svcschemeList.rebuild(this.schemes);
// console.log( "当前的选择是" + this.select_pos );
// 处理默认方案
var defaultSchemeInfo = [];
if (this["default"]) {
defaultSchemeInfo = this["default"].sprites;
} else {
defaultSchemeInfo = model.getDedefaultElfinInfo();
}
// console.log( JSON.stringify( _scheme ) + "当前的默认方案数据model" + JSON.stringify( defaultSchemeInfo ) );
var chd = this.defaultScheme;
for (var i = 0; i < defaultSchemeInfo.length; i++) {
var cmp = chd[i].getComponent(ItemBase);
if (cmp) {
if (i == 0) {
cmp.onFocus();
}
cmp.setLocked(false);
cmp.setData(defaultSchemeInfo[i].item_bid);
if (defaultSchemeInfo[i].item_bid == 0) {
this.defaultLst.push(defaultSchemeInfo[i].item_bid);
} else {
if (!nx.dt.arrMember(this.defaultLst, defaultSchemeInfo[i].item_bid)) {
this.defaultLst.push(defaultSchemeInfo[i].item_bid);
}
}
this.onFocusNod(0);
}
}
// 获取所有的僚机信息
var BC = BackpackController.getInstance();
var BCModel = BC.getModel();
var allElfins = BCModel.getAllBackPackArray(BackPackConst.item_sub_type.ELFIN);
allElfins.forEach(function (_elfin) {
if (nx.dt.arrMember(_this.defaultLst, _elfin.base_id)) {
_elfin.sortid = 1;
} else {
_elfin.sortid = 0;
}
});
allElfins.sort(function (a, b) {
return b.sortid - a.sortid;
});
// console.log( "当前的上阵僚机数据初始" + JSON.stringify( allElfins ) );
nx.gui.setActive(this.svcwingsList, "empty", nx.dt.arrEmpty(allElfins));
this.svcwingsList.rebuild(allElfins);
this.svcwingsList.cleanFocus();
// 引导辅助
if (nx.bridge.plot && nx.bridge.plot.isDoing()) {
this.positionDoPlot();
}
// this.scheduleOnce( ()=>{
this.onFreshFocus();
// }, 0.1 );
// this.freshBuy();
},
onFreshFocus: function onFreshFocus() {
var nodes = nx.gui.find(this.svcwingsList.bindSCV, "view/content").children;
// console.log( "当前的方案处理www" + JSON.stringify( this.defaultLst ) );
for (var i = 0; i < nodes.length; i++) {
var sitem = nodes[i];
if (sitem) {
var cmp = sitem.svItem;
// console.log( defaultSchemeInfo[0].item_bid + "当前的方案处理www" + Object.keys( sitem ) );
if (cmp) {
if (nx.dt.arrMember(this.defaultLst, cmp.mdata.base_id)) {
this.svcwingsList.addFocus(i);
} else {
this.svcwingsList.removeFocus(i);
}
}
}
}
},
// 选中切换 僚机机库
onFocusChanged: function onFocusChanged(_item) {
var _this2 = this;
var defaultSelect = this.defaultScheme[this.select_pos];
var cmp = defaultSelect.getComponent(ItemBase);
var fun = [];
if (cmp) {
if (_item.mdata.base_id == cmp.mdata) {
this.svcwingsList.removeFocus(_item.index);
var idx = this.defaultLst.indexOf(_item.mdata.base_id);
this.defaultLst[idx] = 0;
var data = nx.dt.objClone(_item.mdata) || {};
data.base_id = 0;
this.freshWingInScheme(data);
} else {
this.unscheduleAllCallbacks();
if (nx.dt.arrMember(this.defaultLst, _item.mdata.base_id)) {
var nodes = nx.gui.find(this.svcwingsList.bindSCV, "view/content").children;
// console.log( "当前的方案处理www" );
for (var i = 0; i < nodes.length; i++) {
var sitem = nodes[i];
if (sitem) {
var _cmp = sitem.svItem;
// console.log( defaultSchemeInfo[0].item_bid + "当前的方案处理www" + Object.keys( sitem ) );
if (_cmp) {
if (_cmp.mdata.base_id == _item.mdata.base_id) {
// if( nx.dt.arrMember( this.defaultLst, cmp.mdata.base_id ) ){
// this.svcwingsList.removeFocus( i );
for (var d = 0; d < this.defaultScheme.length; d++) {
var nod = this.defaultScheme[d];
var dcmp = nod.getComponent(ItemBase);
if (dcmp) {
if (dcmp.mdata == _item.mdata.base_id) {
dcmp.setData(0);
var _idx = this.defaultLst.indexOf(_item.mdata.base_id);
this.defaultLst[_idx] = 0;
this.svcwingsList.removeFocus(_item.index);
this.onFocusNod(d);
// this.freshSkillDesc( _item.index ,_item.mdata );
// this.defaultLst = this.svcwingsList.focusList;
return;
}
}
}
// }
}
}
}
}
}
this.svcwingsList.addFocus(_item.index);
this.defaultLst[this.select_pos] = _item.mdata.base_id;
// this.freshSkillDesc( _item.index ,_item.mdata );
this.freshWingInScheme(_item.mdata);
var _loop = function _loop(_d) {
var nod = _this2.defaultScheme[_d];
var dcmp = nod.getComponent(ItemBase);
if (dcmp) {
if (dcmp.mdata && typeof dcmp.mdata != "number") {
fun.push(function () {
_this2.onFocusNod(_d);
});
return "break";
}
}
};
for (var _d = 0; _d < this.defaultScheme.length; _d++) {
var _ret = _loop(_d);
if (_ret === "break") break;
}
if (nx.dt.arrNEmpty(fun)) {
this.scheduleOnce(fun[0], 0.3);
}
}
}
},
// 选中切择pos 默认操作方案 取消可以下阵僚机的操作
onFocusNod: function onFocusNod(_index) {
this.sid = -1;
this.freshOtherSchemeFocus();
for (var i = 0; i < this.defaultScheme.length; i++) {
var selectNode = this.defaultScheme[i];
var cmp = selectNode.getComponent(ItemBase);
if (cmp) {
if (_index == i) {
if (!cmp.mdata) {
nx.tbox(nx.text.format("FortressLevel_Unlocked", i));
this.defaultScheme[this.select_pos].getComponent(ItemBase).onFocus();
return;
} else {
cmp.onFocus();
this.select_pos = _index;
// console.log( this.select_pos + "当前的数据节点" + JSON.stringify( cmp.mdata ) );
if (!nx.dt.objGood(cmp.mdata)) {
this.freshSkillDesc(cmp.mdata);
// this.onFocusChanged( data );
} else {
this.freshSkillDesc(0);
}
}
} else {
cmp.outFocus();
}
}
}
},
// 选中切换 僚机方案
onFocusSchemeChanged: function onFocusSchemeChanged(_item) {
this.unscheduleAllCallbacks();
if (!_item) {
return;
}
var snode = nx.gui.find(this.svcschemeList, "view/content");
// console.log( JSON.stringify( _item ) + "当前的默认方案配置" + snode );
if (snode) {
var nodes = snode.children;
// console.log( JSON.stringify( schemes ) + "当前的默认方案配置" + JSON.stringify( defaultSchemeInfo ) );
var dealui = function dealui(_index, _node) {
var ElfinCtl = ElfinController.getInstance();
var model = ElfinCtl.getModel();
var defaultSchemeInfo = model.getDedefaultElfinInfo();
var schemes = model.getAllPlanData();
if (schemes[_index]) {
schemes[_index].plan_sprites = defaultSchemeInfo;
_node.rebind(_index, schemes[_index]);
self.scheduleOnce(function () {
_node.onTouchSave(self.type, self.team);
}, 0.3);
}
};
var self = this;
var selectNode = nodes[_item.index];
// console.log( JSON.stringify( this.defaultLst ) +"当前预设方案的数据" + JSON.stringify( _item ) );
if (selectNode) {
if (nx.dt.arrCompare(this.defaultLst, _item.lst)) {
if (selectNode.svItem) {
selectNode.svItem.onTouchSave(self.type, self.team);
}
} else {
nx.mbox("ASSAskConfirm", ['yes'], function (_key, _box) {
_box.close();
if (_key == 'yes') {
self.onTouchSave();
self.scheduleOnce(function () {
dealui(_item.index, selectNode.svItem);
}, 0.6);
}
});
}
}
}
},
// 处理 点击方案列表,点击选择僚机,僚机放置到对应的方案中
freshWingInScheme: function freshWingInScheme(_wing) {
var EC = ElfinController.getInstance();
var model = EC.getModel();
var schemes = model.getAllPlanData();
if (this.sid < 0) {
var defaultSchemeInfo = model.getDedefaultElfinInfo();
var scheme = nx.dt.objClone(defaultSchemeInfo);
if (scheme) {
if (scheme[this.select_pos]) {
scheme[this.select_pos].item_bid = _wing.base_id;
this.freshDefaultScheme(scheme);
} else {
nx.tbox("locked");
var cmp = this.defaultScheme[this.select_pos].getComponent(ItemBase);
if (cmp) {
cmp.onFocus();
return;
}
}
}
} else {
// console.log( "当前的方案处理" );
return;
}
},
// 刷新默认方案
freshDefaultSchemeInfo: function freshDefaultSchemeInfo(_schemeitem) {
/*****
* [26555]:{"type":0,"team_list":[{"team":1,"sprites":[{"pos":3,"item_bid":113005},{"pos":2,"item_bid":113007},{"pos":1,"item_bid":113008}],"plan_id":0}]}
*/
this.unscheduleAllCallbacks();
if (!nx.dt.arrEmpty(_schemeitem.team_list)) {
_schemeitem.team_list.sort(Utils.tableLowerSorter(["team"]));
var self = this;
// this.defaultLst = [];
var team = _schemeitem.team_list[0];
var sprites = team.sprites;
sprites.sort(Utils.tableLowerSorter(["pos"]));
if (team.plan_id == 0) {
for (var i = 0; i < sprites.length; i++) {
var selectNode = this.defaultScheme[i];
var cmp = selectNode.getComponent(ItemBase);
if (cmp) {
cmp.setData(sprites[i].item_bid);
this.defaultLst[i] = sprites[i].item_bid;
if (i == this.select_pos) {
cmp.onFocus();
// this.freshSkillDesc( cmp.mdata.item_bid );
} else {
cmp.outFocus();
}
}
}
this.scheduleOnce(function () {
self.onFreshFocus();
}, 0.1);
}
}
},
// 刷新单个方案只可以操作默认的方案
freshDefaultScheme: function freshDefaultScheme(_schemeitem) {
var _this3 = this;
this.unscheduleAllCallbacks();
this.freshDefaultSchemeFocus();
var selectNode = this.defaultScheme[this.select_pos];
var cmp = selectNode.getComponent(ItemBase);
if (cmp) {
// this.defaultLst[this.select_pos] = _schemeitem[this.select_pos].item_bid ;
cmp.setData(_schemeitem[this.select_pos].item_bid);
cmp.onFocus();
// 切换节点 控制技能说明
this.onFocusNod(this.select_pos);
}
this.scheduleOnce(function () {
_this3.onFreshFocus();
}, 0.1);
// console.log( JSON.stringify( _schemeitem ) + "当前的上阵僚机数据" + JSON.stringify( this.defaultLst ) );
},
// 取消默认的聚焦
freshDefaultSchemeFocus: function freshDefaultSchemeFocus() {
for (var i = 0; i < this.defaultScheme.length; i++) {
var item = this.defaultScheme[i];
if (item) {
var cmp = item.getComponent(ItemBase);
if (cmp) {
cmp.outFocus();
}
}
}
},
// 取消生成的动态显示的方案的聚焦
freshOtherSchemeFocus: function freshOtherSchemeFocus() {
var nodes = nx.gui.find(this.svcschemeList, "view/content").children;
// console.log( "当前的方案处理www" );
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].svItem) {
var chd = nodes[i].svItem.sinfo;
for (var j = 0; j < chd.length; j++) {
var sitem = chd[j];
var cmp = sitem.getComponent(ItemBase);
if (cmp) {
cmp.outFocus();
}
}
}
}
},
// 刷新单个方案
freshSchemeItem: function freshSchemeItem(_schemeitem) {
var index = _schemeitem.id;
var i = index - 1;
var ElfinCtl = ElfinController.getInstance();
var model = ElfinCtl.getModel();
// let formLst = model.getFormOn();
// console.log( "当前的上阵或者方案信息" + JSON.stringify( formLst ) );
var defaultSchemeInfo = model.getDedefaultElfinInfo();
var dsprites = nx.dt.objClone(defaultSchemeInfo);
// "plan_sprites":[{"pos":1,"item_bid":113008},{"pos":2,"item_bid":113007}]}
dsprites.forEach(function (_sprite) {
if (_sprite.item_bid > 0) {
_sprite.item_bid = 0;
}
});
var plan_sprites = _schemeitem.plan_sprites;
_schemeitem.plan_sprites = nx.dt.arrEmpty(_schemeitem.plan_sprites) ? dsprites : _schemeitem.plan_sprites;
var node = nx.gui.find(this.svcschemeList, "view/content");
var item = node.children[i];
if (item.svItem) {
item.svItem.rebind(i, _schemeitem);
}
// 在新增方案的时候刷新列表显示,目的是刷新可以新增的相关
if (nx.dt.arrEmpty(plan_sprites)) {
this.freshSchemeList();
}
// this.freshSchemeList();
},
// 刷新技能介绍
freshSkillDesc: function freshSkillDesc(_mdata) {
if (_mdata == 0) {
var _cmp2 = this.skill.getComponent("cmp.skill.base");
if (_cmp2) {
_cmp2.setData({});
}
nx.gui.setActive(this.skill, "type/title", false);
nx.gui.setActive(this.skill, "type/txt", false);
nx.gui.setStringRich(this.skill, "skill/desc/cd", "");
return;
}
var key = _mdata;
var sfg = gdata("sprite_data", "data_elfin_data", key);
var sfgc = game.configs.sprite_data.data_elfin_data[key];
var cmp = this.skill.getComponent("cmp.skill.base");
var ifg = gdata("item_data", "data_unit9", key);
nx.gui.setString(this.skill, "type/txt", nx.text.getKey(ifg.use_desc));
if (sfgc) {
var sfgs = gskilldata('data_get_skill', sfg.skill);
// let txt = nx.text.format( "SkillCD2", sfgs.cd );
var desc = nx.text.format("CD", sfgs.cd, parseInt(this.select_pos) + 1);
// console.log( "des说明" + desc );
nx.gui.setStringRich(this.skill, "skill/desc/cd", desc);
nx.gui.setActive(this.skill, "type/txt", true);
nx.gui.setActive(this.skill, "type/title", true);
if (cmp) {
cmp.setData(sfg.skill);
}
} else {
if (cmp) {
cmp.setData({});
nx.gui.setStringRich(this.skill, "skill/desc/cd", "");
}
}
},
// 刷新购买按钮
freshBuy: function freshBuy() {
// if( )
var allIds = [];
this.schemes.forEach(function (_sch) {
if (_sch.id != 9) {
allIds.push(_sch);
}
});
var key = this.schemes.length;
var key2 = allIds.length;
var maxCount = game.configs.sprite_data.data_elfin_plan_length;
var need = gdata("sprite_data", "data_elfin_plan", key);
nx.gui.setString(this.buy, "txt", key2 < maxCount ? need.expend[0][1] : 0);
nx.gui.setActive(this.buy, "", key2 < maxCount);
},
// 购买方案
onTouchAdd: function onTouchAdd() {
var key = this.schemes.length;
var EC = ElfinController.getInstance();
var pfg = game.configs.sprite_data.data_elfin_plan[key];
var have = BackpackController.getInstance().getModel().getItemNumByBid(pfg.expend[0][0]);
var need = pfg.expend[0][1];
// 不足弹出提示
if (have < need) {
nx.tbox(nx.text.getKey("elfin_hatch_unlock_5"));
return;
}
var mat0 = pfg.expend[0][0];
var txt = nx.text.format("lab_heaven_msg_tips_19n", need, key);
EC.openElfUseTipsWindow(true, txt, [mat0], [need], function (_deal) {
EC.send26562(key);
EC.openElfUseTipsWindow(false);
});
},
// 保存当前的方案
onTouchSave: function onTouchSave() {
var show = [];
var cfg = gdata("item_data", "data_unit9");
var cfgs = game.configs.item_data.data_unit9;
var have = 0;
for (var i = 0; i < this.defaultLst.length; i++) {
var c = this.defaultLst[i];
var icon = gdata("item_data", "data_unit9", c).icon;
// console.log( "圖標顯示" + JSON.stringify( ) );
if (c > 0 && nx.dt.arrMember(show, icon)) {
have++;
} else {
show.push(icon);
}
}
if (have > 0) {
nx.tbox("AssembleTip");
return;
}
var ElfinCtl = ElfinController.getInstance();
var choice = [];
// console.log( "当前的类型wwwww-------" + this.type );
for (var _i = 0; _i < this.defaultScheme.length; _i++) {
var selectNode = this.defaultScheme[_i];
var cmp = selectNode.getComponent(ItemBase);
if (cmp) {
if (!nx.dt.objGood(cmp.mdata)) {
var data = {};
data.pos = _i + 1;
data.item_bid = nx.dt.objClone(cmp.mdata || -1);
choice.push(data);
} else {
var _data = {};
_data.pos = _i + 1;
_data.item_bid = 0;
// console.log( "当前的pos2" + JSON.stringify( data ) );
choice.push(_data);
}
}
}
for (var _i2 = 0; _i2 < choice.length; _i2++) {
if (choice[_i2].item_bid < 0) {
choice.splice(_i2, 1); // 将使后面的元素依次前移,数组长度减1
_i2--; // 如果不减,将漏掉一个元素
}
}
// {"sprites":[{"pos":1,"item_bid":112002}]}
// {"sprites":[{"pos":1,"item_bid":112001}]}
// console.log( "当前方案信息" + JSON.stringify( choice ) );
if (this.type == 100 || this.type == 0) {
ElfinCtl.sender26514(choice, this.type == 100);
} else {
/********_type, sprites, team, flag, only_save */
ElfinCtl.send26560(this.type, choice, this.team);
}
},
dealSame: function dealSame(_lst) {
var lst = _lst;
var same = false;
var count = 0;
for (var i = 0; i < lst.length; i++) {
var it = lst[i];
var itd = this.defaultLst[i];
if (it == itd) {
count++;
}
}
same = count >= lst.length;
return same;
},
// 返回主场景
onBackToMain: function onBackToMain() {
var _this4 = this;
this.unscheduleAllCallbacks();
var HR = HeroController.getInstance();
var EC = ElfinController.getInstance();
var lst = this.dealResult();
var BC = BackpackController.getInstance();
// if( BC ) {
// }
if (this.type == 100) {
// console.log( this.type + "类型" + JSON.stringify( lst ) + "当前的默认方案数据" + JSON.stringify( this.defaultLst ) );
if (!this.dealSame(lst)) {
nx.mbox("ASSAskConfirmBack", ['yes'], function (_key, _box) {
_box.close();
if (_key == 'yes') {
_this4.onTouchSave();
_this4.scheduleOnce(function () {
BC.openMainWindow(false);
HR.openHeroMainInfoWindow(false);
HR.openHeroBagWindow(false);
EC.openElfinAdjustWindow(false);
}, 0.6);
}
});
} else {
BC.openMainWindow(false);
HR.openHeroMainInfoWindow(false);
HR.openHeroBagWindow(false);
EC.openElfinAdjustWindow(false);
}
} else {
BC.openMainWindow(false);
HR.openHeroMainInfoWindow(false);
HR.openHeroBagWindow(false);
EC.openElfinAdjustWindow(false);
}
},
dealResult: function dealResult() {
var ElfinCtl = ElfinController.getInstance();
var model = ElfinCtl.getModel();
var defaultSchemeInfo = model.getDedefaultElfinInfo();
var lst = [];
for (var i = 0; i < defaultSchemeInfo.length; i++) {
lst.push(defaultSchemeInfo[i].item_bid);
}
return lst;
},
closeSelf: function closeSelf() {
var _this5 = this;
this.unscheduleAllCallbacks();
var lst = this.dealResult();
if (this.type == 100) {
if (!this.dealSame(lst)) {
nx.mbox("ASSAskConfirmBack", ['yes'], function (_key, _box) {
_box.close();
if (_key == 'yes') {
_this5.onTouchSave();
_this5.scheduleOnce(function () {
_this5.close();
}, 0.3);
}
});
} else {
this.close();
}
} else {
this.close();
}
},
// ============================================
// 引导辅助
// ============================================
// 定位可以操作的
positionDoPlot: function positionDoPlot() {
var node = null;
var chd = nx.gui.find(this.svcwingsList.bindSCV, "view/content").children;
node = chd[0];
// let node = null;
// let children = this.svcList.bindSCV.content.children;
// for( let i = 0; i < children.length; ++i ) {
// let temp = children[ i ];
// if( temp.svItem && temp.svItem.mdata && temp.svItem.mdata.bid == 20401 ) {
// node = temp;
// break;
// }
// }
if (!node) {
nx.error("$ParterPage:定位特定英雄失败!");
node = chd[0];
if (!node) {
return;
}
}
var cell = nx.gui.find(this, "plot");
var pos = node.convertToWorldSpaceAR(cc.Vec2.ZERO);
cell.position = cell.parent.convertToNodeSpaceAR(pos);
cell.width = node.width;
cell.height = node.height;
cell.mdata = node.svItem.mdata;
}
});
cc._RF.pop();