PackageSetQuickPage = class("PackageSetQuickPage", SubMediatorView); autoImport("SetQuickItemCell"); function PackageSetQuickPage:Init() self:AddViewEvts(); self:InitUI(); end function PackageSetQuickPage:InitUI() -- 初始化快捷欄 local quickUseGrid = self:FindComponent("QuickUseGrid", UIGridEx); self.quickUseItem = {}; for i=1,10 do local obj = self:LoadPreferb("cell/SetQuickItemCell", quickUseGrid.gameObject); obj.name = "SetQuickItemCell"..i; self.quickUseItem[i] = SetQuickItemCell.new(obj); self.quickUseItem[i]:SetQuickPos(i); self.quickUseItem[i]:AddEventListener(SetQuickItemCell.SwapObj, self.SetQuickUseItem, self); end quickUseGrid:Reposition(); end function PackageSetQuickPage:OnEnter() PackageSetQuickPage.super.OnEnter(self); self:UpdateQuickUse(); end function PackageSetQuickPage:SetQuickUseItem(param) self.SetQuickUseFunc(param); end -- 設定快捷欄快捷鍵 func function PackageSetQuickPage.SetQuickUseFunc(param) local surcData = param.surce.itemdata; local surcPos = param.surce.pos; local targetPos = param.target.pos; local keys = {}; local key = { guid = surcData.id, type = surcData.staticData.id, pos = targetPos-1, }; table.insert(keys, key); -- 如果surcPos有值 則該值是快捷欄位互換 if(surcPos)then -- 在快捷欄互換情況下 目標快捷欄有數值 local targetData = param.target.data; local targetId, typeId; if(targetData)then targetId = targetData.id; typeId = targetData.staticData.id; end local key2 = { guid = targetId, type = typeId, pos = surcPos-1, }; table.insert(keys, key2); end for i=1,#keys do ServiceNUserProxy.Instance:CallPutShortcut(keys[i]); end end -- 快捷欄更新 function PackageSetQuickPage:UpdateQuickUse() local quickUseItems = ShortCutProxy.Instance:GetShorCutItem(true); for i=1,#self.quickUseItem do local cell = self.quickUseItem[i]; cell:SetData(quickUseItems[i]); end end function PackageSetQuickPage:AddViewEvts() self:AddListenEvt(ItemEvent.ItemUpdate,self.UpdateQuickUse); self:AddListenEvt(ServiceEvent.NUserPutShortcut,self.UpdateQuickUse); self:AddListenEvt(MyselfEvent.ResetHpShortCut,self.UpdateQuickUse); end