RoleTequanView.lua
4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
local RoleTequanView = dialog.uinode("ui/dress/RoleVipTequanLayer.csb", import(".BaseViewNew"))
function RoleTequanView:ctor()
RoleTequanView.super.ctor(self);
end
function RoleTequanView:init(_nodes, _update_nodes_func, _close_func)
self.nodes = _nodes;
self.update_nodes_func = _update_nodes_func;
self.close_fun = _close_func;
self.scrollView = self:getChildByName("ScrollView");
self.nodes_copy = TableUtil.copyTab(self.nodes);
self:update();
end
function RoleTequanView:update()
self.scrollView:removeAllChildren();
local _nodes = { };
self.cnt = 9;
local _y = math.floor((self.cnt - 1) / 3) * 190 + 190;
if _y < 550 then
_y = 550;
end
for i = 0, self.cnt - 1 do
local item = cc.CSLoader:createNode("ui/dress/RoleVipTequanItem.csb");
item:setPosition(cc.p(80 + i % 3 * 260, _y -(math.floor(i / 3 + 1) * 190)));
item:setLocalZOrder(self.cnt - i);
self.scrollView:addChild(item);
item:getChildByName("img_flag_tequan"):setVisible(false);
local btn = item:getChildByName("btn");
btn:setSwallowTouches(false);
btn.id =(i + 1);
item.id =(i + 1);
item.index = i + 1;
local icon_url = "res/ui/dress/img_tequan_" .. item.id .. ".png";
if cc.FileUtils:getInstance():isFileExist(icon_url) then
item:getChildByName("img"):setSpriteFrame(cc.Sprite:create(icon_url):getSpriteFrame());
end
btn:addTouchEventListener( function(ref, type) self:onButtonClick(ref, type, handler(self, self.onItemClick)) end);
item.fn = function()
self:onItemClick(btn);
end;
_nodes[#_nodes + 1] = item;
end
self.nodes = TableUtil.merge(self.nodes_copy, { _nodes });
if self.update_nodes_func then
self.update_nodes_func(self.nodes);
end
self.scrollView:setInnerContainerSize(cc.size(950, _y));
end
function RoleTequanView:onItemClick(node)
local reciever = nil;
if node.id == 1 then
reciever = require("app.views.view.XyxView"):show();
cc.Director:getInstance():getRunningScene().keypadManager:addKeypadReceiver(reciever);
elseif node.id == 2 then
reciever = require("app.views.view.XyxView"):show();
cc.Director:getInstance():getRunningScene().keypadManager:addKeypadReceiver(reciever);
elseif node.id == 3 then
local reciever = require("app.views.view.ActivityView"):show("ActivityVipView");
cc.Director:getInstance():getRunningScene().keypadManager:addKeypadReceiver(reciever);
elseif node.id == 4 then
local reciever = require("app.views.view.ShopView"):show();
cc.Director:getInstance():getRunningScene().keypadManager:addKeypadReceiver(reciever);
elseif node.id == 5 then
if self.close_fun then
self.close_fun();
end
local reciever = require("app.views.view.RoleMainView"):show(2);
cc.Director:getInstance():getRunningScene().keypadManager:addKeypadReceiver(reciever);
elseif node.id == 6 then
local reciever = require("app.views.view.AchievementView"):show();
cc.Director:getInstance():getRunningScene().keypadManager:addKeypadReceiver(reciever);
elseif node.id == 7 then
local reciever = require("app.views.view.ActivityView"):show("ActivityVipCycleView");
cc.Director:getInstance():getRunningScene().keypadManager:addKeypadReceiver(reciever);
elseif node.id == 8 then
local reciever = require("app.views.view.ActivityView"):show();
cc.Director:getInstance():getRunningScene().keypadManager:addKeypadReceiver(reciever);
end
end
function RoleTequanView:onItemOver(node)
if node.id then
end
end
function RoleTequanView:onItemOut(node)
if node.id then
end
end
function RoleTequanView:setScrollPosition(node)
local scrollSize = self.scrollView:getContentSize();
local len = math.floor((self.cnt - 1) / 3) * 190 + 190;
local currentY = len -(node:getPositionY() + 190);
if currentY > len - scrollSize.height then
currentY = len - scrollSize.height;
elseif currentY < 0 then
currentY = 0;
end
local per = 0;
if len - scrollSize.height > 0 then
per = currentY * 100 /(len - scrollSize.height);
end
self.scrollView:scrollToPercentVertical(per, 0.5, true);
end
return RoleTequanView