245 lines
7.2 KiB
Plaintext
245 lines
7.2 KiB
Plaintext
PortraitPopUp = class("PortraitPopUp", BaseView);
|
|
|
|
autoImport("PortraitCell");
|
|
autoImport("PlayerFaceCell");
|
|
autoImport("PortraitFrameCell");
|
|
|
|
PortraitPopUp.ViewType = UIViewType.PopUpLayer
|
|
|
|
function PortraitPopUp:Init()
|
|
self:FindObjs();
|
|
self:InitShow();
|
|
self:RegistRedTip();
|
|
-- self:MapViewEvents();
|
|
end
|
|
|
|
function PortraitPopUp:FindObjs()
|
|
local manScroll = self:FindChild("ManScroll");
|
|
local moreScroll = self:FindChild("MoreScroll");
|
|
local frameScroll = self:FindChild("FrameScroll");
|
|
self.mangrid = self:FindChild("Grid", manScroll):GetComponent(UIGrid);
|
|
self.moregrid = self:FindChild("Grid", moreScroll):GetComponent(UIGrid);
|
|
self.framegrid = self:FindChild("Grid", frameScroll):GetComponent(UIGrid);
|
|
|
|
self.myPortraitCell = self:FindChild("HeadCell");
|
|
|
|
self.tip = self:FindChild("PortraitTip");
|
|
self.portraitChoose = self:FindChild("portraitChoose");
|
|
self.frameChoose = self:FindChild("frameChoose");
|
|
end
|
|
|
|
function PortraitPopUp:RegistRedTip()
|
|
local roleTog = self:FindGO("ManToggle");
|
|
local moreTog = self:FindGO("MoreToggle");
|
|
local frameTog = self:FindGO("FrameToggle");
|
|
self:AddTabEvent(roleTog, function() self:UpdateRolePortrait() end);
|
|
self:AddTabEvent(moreTog, function() self:UpdateMorePortrait() end);
|
|
self:AddTabEvent(frameTog, function() self:UpdatePortraitFrame() end);
|
|
self:RegisterRedTipCheck(SceneTip_pb.EREDSYS_ROLE_IMG, roleTog:GetComponentInChildren(UISprite), 50);
|
|
self:RegisterRedTipCheck(SceneTip_pb.EREDSYS_MONSTER_IMG , moreTog:GetComponentInChildren(UISprite), 50);
|
|
self:RegisterRedTipCheck(SceneTip_pb.EREDSYS_PHOTOFRAME , frameTog:GetComponentInChildren(UISprite), 50);
|
|
end
|
|
|
|
function PortraitPopUp:InitShow()
|
|
self:UpdateHeadCell();
|
|
self:UpdateRolePortrait();
|
|
end
|
|
|
|
function PortraitPopUp:SendSeeNew()
|
|
if(self.lastSee)then
|
|
RedTipProxy.Instance:SeenNew(self.lastSee);
|
|
end
|
|
end
|
|
|
|
function PortraitPopUp:UpdateRolePortrait()
|
|
self:SendSeeNew();
|
|
|
|
local portraitData = MyselfProxy.Instance.portraitData;
|
|
if(portraitData)then
|
|
if(self.manPortraitlst == nil)then
|
|
self.manPortraitlst = UIGridListCtrl.new(self.mangrid, PortraitCell, "PortraitCell");
|
|
|
|
self.manPortraitlst:AddEventListener(MouseEvent.MouseClick,self.ClickManPortraitCell,self);
|
|
end
|
|
local manPortraitDatas = portraitData:GetOrderManPortraits(Game.Myself.data.userdata:Get(UDEnum.SEX));
|
|
self.manPortraitlst:ResetDatas(manPortraitDatas);
|
|
|
|
for k,v in pairs(self.manPortraitlst:GetCells()) do
|
|
if(v.data and v.data.id == self.choosePortrait.id)then
|
|
self.portraitChoose.transform:SetParent(v.gameObject.transform, false);
|
|
self.portraitChoose:SetActive(true);
|
|
break;
|
|
end
|
|
end
|
|
end
|
|
|
|
self.lastSee = SceneTip_pb.EREDSYS_ROLE_IMG;
|
|
end
|
|
|
|
function PortraitPopUp:UpdateMorePortrait()
|
|
self:SendSeeNew();
|
|
|
|
local portraitData = MyselfProxy.Instance.portraitData;
|
|
if(portraitData)then
|
|
if(self.morePortraitlst == nil)then
|
|
self.morePortraitlst = UIGridListCtrl.new(self.moregrid, PortraitCell, "PortraitCell");
|
|
|
|
self.morePortraitlst:AddEventListener(MouseEvent.MouseClick,self.ClickManPortraitCell,self);
|
|
end
|
|
local otherPortraitDatas = portraitData:GetOrderOtherPortraits()
|
|
self.morePortraitlst:ResetDatas(otherPortraitDatas);
|
|
|
|
for k,v in pairs(self.morePortraitlst:GetCells()) do
|
|
if(v.data and v.data.id == self.choosePortrait.id)then
|
|
self.portraitChoose.transform:SetParent(v.gameObject.transform, false);
|
|
self.portraitChoose:SetActive(true);
|
|
break;
|
|
end
|
|
end
|
|
end
|
|
|
|
self.lastSee = SceneTip_pb.EREDSYS_MONSTER_IMG;
|
|
end
|
|
|
|
function PortraitPopUp:InitChoosePortrait(cells)
|
|
if(self.choosePortrait and not self.initChooseP)then
|
|
self.initChooseP = true;
|
|
end
|
|
|
|
local isFindP = false;
|
|
local manPortraitCells = self.manPortraitlst:GetCells();
|
|
if(manPortraitCells == nil)then
|
|
return;
|
|
end
|
|
for i = 1,#manPortraitCells do
|
|
local v = manPortraitCells[i];
|
|
if(v~=nil and v.data~=nil and v.data.id == self.choosePortrait.id)then
|
|
self.portraitChoose.transform:SetParent(v.gameObject.transform, false);
|
|
self.portraitChoose:SetActive(true);
|
|
isFindP = true;
|
|
end
|
|
end
|
|
if(not isFindP)then
|
|
local morePortraitCells = self.morePortraitlst:GetCells();
|
|
for i = 1,#morePortraitCells do
|
|
local v = morePortraitCells[i];
|
|
if(v~=nil and v.data.id == self.choosePortrait.id)then
|
|
self.portraitChoose.transform:SetParent(v.gameObject.transform, false);
|
|
self.portraitChoose:SetActive(true);
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function PortraitPopUp:UpdatePortraitFrame()
|
|
self:SendSeeNew();
|
|
|
|
local portraitData = MyselfProxy.Instance.portraitData;
|
|
if(portraitData)then
|
|
if(self.framePortraitlst == nil)then
|
|
self.framePortraitlst = UIGridListCtrl.new(self.framegrid, PortraitFrameCell, "PortraitFrameCell");
|
|
self.framePortraitlst:AddEventListener(MouseEvent.MouseClick,self.ClickFrameCell,self)
|
|
end
|
|
local frameDatas = portraitData:GetOrderFrames();
|
|
self.framePortraitlst:ResetDatas(frameDatas);
|
|
end
|
|
if(self.chooseFrame)then
|
|
local frameCells = self.framePortraitlst:GetCells();
|
|
for i = 1,#frameCells do
|
|
local v = frameCells[i];
|
|
if(v.data and v.data.id == self.chooseFrame.id)then
|
|
self.frameChoose.transform:SetParent(v.gameObject.transform, false);
|
|
self.frameChoose:SetActive(true);
|
|
break;
|
|
end
|
|
end
|
|
end
|
|
|
|
self.lastSee = SceneTip_pb.EREDSYS_PHOTOFRAME;
|
|
end
|
|
|
|
function PortraitPopUp:UpdateHeadCell(pData, fData)
|
|
if(self.headcell == nil)then
|
|
self.headcell = PlayerFaceCell.new(self.myPortraitCell);
|
|
end
|
|
|
|
self.choosePortrait = pData or MyselfProxy.Instance:GetMyPortrait();
|
|
self.chooseFrame = fData or MyselfProxy.Instance:GetMyFrame();
|
|
|
|
local data = {};
|
|
if(self.choosePortrait~=nil)then
|
|
local picData = Table_Item[self.choosePortrait.id];
|
|
data.head = picData.Icon;
|
|
end
|
|
if(self.chooseFrame ~=nil)then
|
|
local picData = Table_Item[self.chooseFrame.id];
|
|
data.frame = picData.Icon;
|
|
end
|
|
data.profession = Game.Myself.data.userdata:Get(UDEnum.PROFESSION);
|
|
self.headcell:SetData(data);
|
|
end
|
|
|
|
function PortraitPopUp:ClickManPortraitCell(body)
|
|
local obj = body.obj;
|
|
local data = body.data;
|
|
if(data.Lock == 1)then
|
|
self:ShowTip(data, obj.transform.position);
|
|
else
|
|
self.portraitChoose.transform:SetParent(obj.transform, false);
|
|
self.portraitChoose:SetActive(true);
|
|
self:UpdateHeadCell(data,self.chooseFrame);
|
|
end
|
|
end
|
|
|
|
function PortraitPopUp:ClickFrameCell(body)
|
|
local obj = body.obj;
|
|
local data = body.data;
|
|
if(data.Lock == 1)then
|
|
self:ShowTip(data, obj.transform.position);
|
|
else
|
|
self.frameChoose.transform:SetParent(obj.transform, false);
|
|
self.frameChoose:SetActive(true);
|
|
self:UpdateHeadCell(self.choosePortrait, data);
|
|
end
|
|
end
|
|
|
|
function PortraitPopUp:ShowTip(data, position)
|
|
self.tip.transform.position = position;
|
|
local lab = self:FindChild("Desc", self.tip):GetComponent(UILabel);
|
|
lab.text = data.Text;
|
|
self.tip:SetActive(true);
|
|
end
|
|
|
|
function PortraitPopUp:OnExit()
|
|
-- 給伺服器發送切換頭像的訊息
|
|
if(self.choosePortrait~=nil)then
|
|
local myPortrait = MyselfProxy.Instance:GetMyPortrait();
|
|
if(myPortrait == nil or (myPortrait~=nil and myPortrait.id~=self.choosePortrait.id))then
|
|
ServiceNUserProxy.Instance:CallUsePortrait(self.choosePortrait.id);
|
|
end
|
|
end
|
|
if(self.chooseFrame~=nil)then
|
|
local myframe = MyselfProxy.Instance:GetMyFrame();
|
|
if(myframe == nil or (myframe~=nil and myframe.id~=self.chooseFrame.id))then
|
|
ServiceNUserProxy.Instance:CallUseFrame(self.chooseFrame.id);
|
|
end
|
|
end
|
|
self:SendSeeNew();
|
|
self.super.OnExit(self);
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|