"use strict";
cc._RF.push(module, '4aad6uJw3dDlI0AEspLBCTj', 'vedio_main_window');
// Scripts/mod/vedio/view/vedio_main_window.js
"use strict";
// --------------------------------------------------------------------
// @author: xxx@syg.com(必填, 创建模块的人员)
// @description:
// 这里是描述这个窗体的作用的
//
Create: 2019-05-16 19:12:27
// --------------------------------------------------------------------
var PathTool = require("pathtool");
var CommonScrollView = require("common_scrollview");
var VedioMainItem = require("vedio_item_panel");
var VedioConst = require("vedio_const");
var CommonTabBtn = require("common_tab_btn");
var VedioController = require("vedio_controller");
var VedioEvent = require("vedio_event");
var RoleController = require("role_controller");
var ChatConst = require("chat_const");
var VedioMainWindow = cc.Class({
"extends": BaseView,
ctor: function ctor() {
this.prefabPath = PathTool.getPrefabPath("vedio", "vedio_main_window"); // this.viewTag = SCENE_TAG.dialogue; //该窗体所属ui层级,全屏ui需要在ui层,非全屏ui在dialogue层,这个要注意
this.win_type = WinType.Full; //是否是全屏窗体 WinType.Full, WinType.Big, WinType.Mini, WinType.Tips
this.ctrl = VedioController.getInstance();
this._model = this.ctrl.getModel();
},
// 初始化一些配置数据,可以用于声明一些变量之类的
initConfig: function initConfig() {
this.req_flag = false; // 是否正在请求数据(避免滑到底部多次请求)
this.filt_index_list = {}; //记录各页签当前选中的筛选下标
this.filt_btn_list = [];
this.vedio_data = {}; // -- 当前选中的类型、条件的录像数
},
// 预制体加载完成之后的回调,可以在这里捕获相关节点或者组件
openCallBack: function openCallBack() {
var self = this;
self.background = self.root_wnd.getChildByName("background");
self.background.scale = FIT_SCALE;
this.loadRes(PathTool.getUIIconPath("bigbg", "bigbg_2", "jpg"), function (res) {
self.background.getComponent(cc.Sprite).spriteFrame = res;
}.bind(this));
self.mainContainer = self.root_wnd.getChildByName("main_container");
self.share_panel = self.mainContainer.getChildByName("share_panel");
self.share_panel.active = false;
self.share_bg = self.share_panel.getChildByName("share_bg");
self.btn_guild = self.share_bg.getChildByName("btn_guild");
self.btn_world = self.share_bg.getChildByName("btn_world");
self.btn_guild.getChildByName("guild_label").getComponent(cc.Label).string = Utils.TI18N("分享到公会频道");
self.btn_world.getChildByName("world_label").getComponent(cc.Label).string = Utils.TI18N("分享到世界频道");
self.main_panel = self.mainContainer.getChildByName("main_panel");
self.main_panel.getChildByName("win_title").getComponent(cc.Label).string = Utils.TI18N("录像馆");
self.like_limit_num = self.main_panel.getChildByName("like_limit_num").getComponent(cc.Label);
self.like_limit_num.string = "";
self.close_btn = self.main_panel.getChildByName("close_btn");
self.collect_btn = self.main_panel.getChildByName("collect_btn");
self.collect_btn.getChildByName("label").getComponent(cc.Label).string = Utils.TI18N("个人收藏");
self.myself_btn = self.main_panel.getChildByName("myself_btn");
self.myself_btn.getChildByName("label").getComponent(cc.Label).string = Utils.TI18N("个人记录");
self.no_vedio_image = self.main_panel.getChildByName("no_vedio_image");
self.arrow = self.main_panel.getChildByName("arrow");
var filt_bg = self.main_panel.getChildByName("filt_bg");
self.filt_label = filt_bg.getChildByName("filt_label").getComponent(cc.Label);
self.filt_btn = filt_bg.getChildByName("filt_btn");
self.filt_lv_btn = self.main_panel.getChildByName("filt_lv_btn");
self.filt_lv_btn.getComponent(cc.Toggle).isChecked = this._model.getFiltLevelFlag();
self.filt_lv_btn.getChildByName("name").getComponent(cc.Label).string = Utils.TI18N("筛选临近等级");
var scrollCon = self.main_panel.getChildByName("scrollCon");
var bgSize = scrollCon.getContentSize();
var scroll_view_size = cc.size(bgSize.width - 10, bgSize.height - 10);
var setting = {
item_class: VedioMainItem,
start_x: 0,
//-- 第一个单元的X起点
space_x: 0,
//-- x方向的间隔
start_y: 0,
//-- 第一个单元的Y起点
space_y: 3,
//-- y方向的间隔
item_width: 620,
//-- 单元的尺寸width
item_height: 374,
//-- 单元的尺寸height
row: 0,
//-- 行数,作用于水平滚动类型
col: 1,
//-- 列数,作用于垂直滚动类型
need_dynamic: true
};
this.vedio_scrollview = new CommonScrollView();
this.vedio_scrollview.createScroll(scrollCon, cc.v2(4.5, 5), ScrollViewDir.vertical, ScrollViewStartPos.top, scroll_view_size, setting); //common_scrollview_single有bug暂时不用
// this.vedio_scrollview.registerScriptHandlerSingle(self._createNewCell.bind(this), ScrollViewFuncType.CreateNewCell) //--创建cell
// self.vedio_scrollview.registerScriptHandlerSingle(self._numberOfCells.bind(this), ScrollViewFuncType.NumberOfCells) //--获取数量
// this.vedio_scrollview.registerScriptHandlerSingle(self._updateCellByIndex.bind(this), ScrollViewFuncType.UpdateCellByIndex) //--更新cell
this.createTabBtnList();
},
_createNewCell: function _createNewCell() {
var cell = new VedioMainItem();
cell.addCallBack(this._onClickShareBtn.bind(this));
cell.show();
return cell;
},
_numberOfCells: function _numberOfCells() {
if (!this.vedio_show_data) return 0;
return this.vedio_show_data.length;
},
_updateCellByIndex: function _updateCellByIndex(cell, index) {
if (!this.vedio_show_data) return;
cell.index = index;
var cell_data = this.vedio_show_data[index];
if (!cell_data) return;
if (this.cur_index) {
if (this.cur_index == VedioConst.Tab_Index.Hot) {
cell.setExtendData({
is_hot: true
});
} else {
cell.setExtendData({});
}
}
cell.setData(cell_data);
},
createTabBtnList: function createTabBtnList() {
// let temp_tab = []
// temp_tab[0] = VedioConst.Tab_Index.Hot;
// temp_tab[1] = VedioConst.Tab_Index.Arena;
// temp_tab[2] = VedioConst.Tab_Index.Champion;
// temp_tab[3] = VedioConst.Tab_Index.Solo;
// temp_tab[4] = VedioConst.Tab_Index.Guildwar;
// temp_tab[5] = VedioConst.Tab_Index.Ladder;
// temp_tab[6] = VedioConst.Tab_Index.Elite;
// this.tabArray = []
// for(let i=0;i= left_min_lv && role_vo.lev <= left_max_lv || role_vo.lev >= right_min_lv && role_vo.lev <= right_max_lv) {
self.vedio_show_data.push(v);
}
}
} else {
self.vedio_show_data = self.vedio_data.vedio_data || [];
}
if (Utils.next(self.vedio_show_data) != null) {
// -- 滑到顶部还是保持位置仅更新数据
if (self.scroll_to_top == true) {
// self.vedio_scrollview.reloadData()
var extend;
if (self.cur_index == VedioConst.Tab_Index.Hot) {
extend = {
is_hot: true
};
} else {
extend = {};
}
self.vedio_scrollview.setData(self.vedio_show_data, this._onClickShareBtn.bind(this), extend);
} else {
self.vedio_scrollview.resetCurrentItems();
}
self.vedio_scrollview.setVisible(true);
self.no_vedio_image.active = false;
self.scroll_to_top = false;
} else {
self.vedio_scrollview.setVisible(false); // self.vedio_scrollview.reloadData()
self.vedio_scrollview.setData(self.vedio_show_data, this._onClickShareBtn.bind(this));
self.no_vedio_image.active = false;
}
},
_onClickShareBtn: function _onClickShareBtn(world_pos, replay_id, share_num, srv_id, combat_type) {
var self = this;
self.replay_id = replay_id;
self.share_num = share_num;
self.srv_id = srv_id;
self.combat_type = combat_type;
var node_pos = self.share_panel.convertToNodeSpaceAR(world_pos);
if (node_pos) {
self.share_bg.setPosition(cc.v2(node_pos.x - 60, node_pos.y + 45));
self.share_panel.active = true;
}
},
// -- 点击筛选按钮
_onClickFiltBtn: function _onClickFiltBtn() {
var _this2 = this;
var self = this;
if (self.cur_index) {
var vedio_config = Config.video_data.data_vedio[this.cur_index];
if (!vedio_config) return;
if (!self.filt_layout) {
self.filt_layout = new cc.Node();
self.filt_layout.setContentSize(cc.size(676, 918));
self.filt_layout.setAnchorPoint(0.5, 0.5);
self.filt_layout.setPosition(0, 0);
self.mainContainer.addChild(self.filt_layout);
self.filt_layout.on("touchend", function () {
self._onClickFiltBtn();
});
self.filt_bg = Utils.createImage(self.filt_layout, null, 0, 0, cc.v2(1, 1), true, 1, true);
self.filt_bg.node.setAnchorPoint(cc.v2(1, 1));
this.loadRes(PathTool.getUIIconPath("common", "common_1092"), function (res) {
self.filt_bg.spriteFrame = res;
}.bind(this));
self.filt_layout.active = false;
}
var evt_list = vedio_config.evt || [];
for (var k = 0; k < self.filt_btn_list.length; ++k) {
var btn = self.filt_btn_list[k];
btn.node.active = false;
}
var space_y = 0;
var distance = 10;
var btn_size = cc.size(150, 50);
var bg_size = cc.size(166, distance * 2 + evt_list.length * (btn_size.height + space_y) - space_y);
self.filt_bg.node.setContentSize(bg_size);
var world_pos = self.filt_btn.convertToWorldSpaceAR(cc.v2(0, 0));
var node_pos = self.filt_layout.convertToNodeSpaceAR(world_pos);
self.filt_bg.node.setPosition(cc.v2(node_pos.x + 22, node_pos.y - 22));
var _loop2 = function _loop2(i) {
var v = evt_list[i];
var btn = self.filt_btn_list[i];
if (btn == null) {
btn = {};
var img = Utils.createImage(self.filt_bg.node, null, 0, 0, cc.v2(0.5, 0), true, 1, true);
btn.node = img.node;
btn.node.setContentSize(btn_size);
var button = btn.node.addComponent(cc.Button);
button.transition = cc.Button.Transition.SCALE;
button.duration = 0.1;
button.zoomScale = 0.9;
_this2.loadRes(PathTool.getUIIconPath("common", "common_1046"), function (res) {
img.spriteFrame = res;
}.bind(_this2));
btn.node.on("click", function () {
this._onClickFiltItem(i);
}.bind(_this2));
var btn_str = new cc.Node().addComponent(cc.Label);
btn_str.horizontalAlign = cc.Label.HorizontalAlign.CENTER;
btn_str.horizontalAlign = cc.Label.VerticalAlign.CENTER;
btn_str.node.y = btn_size.height / 2;
btn_str.fontSize = 22;
btn_str.lineHeight = 25;
btn_str.node.color = new cc.Color(113, 40, 4);
btn.node.addChild(btn_str.node);
self.filt_btn_list.push(btn);
btn.name = btn_str;
}
btn.name.string = self.getFiltBtnNameByEvt(v);
btn.node.active = true;
var pos_y = distance + (i + 1) * (btn_size.height + space_y);
btn.node.setPosition(cc.v2(-166 / 2, -pos_y));
};
for (var i = 0; i < evt_list.length; ++i) {
_loop2(i);
}
self.filt_layout.active = !self.filt_layout.active;
}
},
_onClickFiltItem: function _onClickFiltItem(index) {
var self = this;
if (!self.cur_index) return;
var vedio_config = Config.video_data.data_vedio[self.cur_index];
if (vedio_config) {
self.filt_index_list[self.cur_index] = index;
var evt = vedio_config.evt[index];
var btn_str = self.getFiltBtnNameByEvt(evt);
self.filt_label.string = btn_str;
self._onClickFiltBtn();
if (self.cur_index != VedioConst.Tab_Index.Elite) {
self.vedio_data = {};
self.scroll_to_top = true; // -- 没请求过数据则请求数据,否则直接显示缓存数据
if (!this._model.checkIsReqVedioDataByType(self.cur_index, index)) {
this.ctrl.requestPublicVedioData(self.cur_index, index, 1, VedioConst.ReqVedioDataNum);
} else {
self.setData();
}
}
}
},
// 关闭窗体回调,需要在这里调用该窗体所属controller的close方法没用于置空该窗体实例对象
closeCallBack: function closeCallBack() {
if (this.tab_Btn) {
for (var i = 0; i < this.tab_Btn.length; ++i) {
if (this.tab_Btn) {
this.tab_Btn[i].deleteMe();
this.tab_Btn[i] = null;
}
}
}
this.tab_Btn = null;
if (this.vedio_scrollview) {
this.vedio_scrollview.DeleteMe();
this.vedio_scrollview = null;
}
this.ctrl.openVedioMainWindow(false);
}
});
cc._RF.pop();