2025-06-04 05:02:57 +08:00

86 lines
1.7 KiB
Plaintext

autoImport("BaseTip");
RClickTip = class("RClickTip" ,BaseTip)
autoImport("RClickFuncCell");
function RClickTip:Init()
RClickTip.super.Init(self);
local grid = self.gameObject:GetComponent(UIGrid);
self.clickCtl = UIGridListCtrl.new(grid, RClickFuncCell, "RClickFuncCell");
self.clickCtl:AddEventListener(MouseEvent.MouseClick, self.clickFunc, self);
self.closecomp = self.gameObject:GetComponent(CloseWhenClickOtherPlace);
self.closecomp.callBack = function (go) self:CloseSelf(); end
end
function RClickTip:clickFunc(cellCtl)
local funcData = cellCtl.data;
if(funcData)then
local func = RClickFunction.GetFunc(funcData.key);
if(func)then
func(self.playerData);
end
if(self.clickcallback)then
self.clickcallback(funcData);
end
end
self:CloseSelf();
end
function RClickTip:CloseSelf()
if(self.closecallback)then
self.closecallback();
end
TipsView.Me():HideCurrent();
end
-- {funckeys, playerData}
function RClickTip:SetData(data)
self.closecomp:ClearTarget();
if(data)then
local funcConfigs = {};
for i=1,#data.funckeys do
local config = RClickFunction.FuncConfig[data.funckeys[i]];
table.insert(funcConfigs, config);
end
self.clickCtl:ResetDatas(funcConfigs);
self.playerData = data.playerData;
self.closecallback = data.closecallback;
self.clickcallback = data.clickcallback;
end
-- self.closecomp:ReCalculateBound();
end
function RClickTip:OnEnter()
end
function RClickTip:OnExit()
return true;
end
function RClickTip:DestroySelf()
GameObject.DestroyImmediate(self.gameObject)
end
function RClickTip:AddIgnoreBound(obj)
if(self.gameObject and self.closecomp)then
self.closecomp:AddTarget(obj.transform);
end
end