429 lines
14 KiB
Plaintext
429 lines
14 KiB
Plaintext
MarriageCertificate = class("MarriageCertificate", ContainerView)
|
|
autoImport("Charactor")
|
|
autoImport("PicutureWallSyncPanel")
|
|
MarriageCertificate.ViewType = UIViewType.PopUpLayer
|
|
local tempVector3 = LuaVector3.zero
|
|
local tempRot = LuaQuaternion.identity
|
|
|
|
MarriageCertificate.BgTextureName = "marry_bg_bottom1";
|
|
MarriageCertificate.ProcessTextureName = "marry_bg_process";
|
|
|
|
function MarriageCertificate:Init()
|
|
self:AddViewEvts()
|
|
self:initView()
|
|
self:initData()
|
|
end
|
|
|
|
function MarriageCertificate:AddViewEvts()
|
|
self:AddListenEvt(WeddingWallPicManager.WeddingPicDownloadCompleteCallback,self.photoCompleteCallback);
|
|
self:AddListenEvt(WeddingWallPicManager.WeddingPicDownloadProgressCallback,self.photoProgressCallback);
|
|
self:AddListenEvt(WeddingWallPicManager.WeddingPicDownloadErrorCallback,self.photoErrorCallback);
|
|
self:AddListenEvt(ServiceEvent.NUserUploadWeddingPhotoUserCmd,self.UpdateCurPhoto);
|
|
end
|
|
|
|
function MarriageCertificate:ShowRedTip( note )
|
|
local size = note.body
|
|
if(size>0)then
|
|
self:Show(self.redTip)
|
|
self:ShowMsgAnim(note.body)
|
|
else
|
|
self:Hide(self.redTip)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:PhotoCmdFrameActionPhotoCmd( note )
|
|
end
|
|
|
|
function MarriageCertificate:UpdateCurPhoto( note )
|
|
-- helplog("UpdateCurPhoto:")
|
|
-- local serverData = Game.PictureWallManager:getServerDataByFrameId(self.frameId)
|
|
-- if(serverData)then
|
|
-- if(self.serverData and Game.PictureWallManager:checkSamePicture(self.serverData.photoData,serverData.photoData))then
|
|
-- return
|
|
-- end
|
|
-- self.serverData = serverData
|
|
-- local photoData = self.serverData.photoData
|
|
-- self.anglez = photoData.anglez
|
|
self:getPhoto()
|
|
-- else
|
|
-- local texture = self.photo.mainTexture
|
|
-- self.photo.mainTexture = nil
|
|
-- Object.DestroyImmediate(texture)
|
|
-- end
|
|
end
|
|
|
|
function MarriageCertificate:changePhotoSize()
|
|
|
|
local frameData = Table_ScenePhotoFrame[self.frameId]
|
|
local dir = 0
|
|
if(frameData)then
|
|
dir = frameData.Dir
|
|
end
|
|
if(dir == 1)then
|
|
self.photo.width = 400
|
|
self.photo.height = 600
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:photoCompleteCallback( note )
|
|
-- body
|
|
local data = note.body
|
|
local id = data.id
|
|
local index = data.index
|
|
Game.WeddingWallPicManager:log("MarriageCertificate:photoCompleteCallback1",id,self.weddingData.id,self.weddingData.photoidx)
|
|
if(self.weddingData and id == self.weddingData.id and index == self.weddingData.photoidx)then
|
|
self:completeCallback(data.byte)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:photoProgressCallback( note )
|
|
-- body
|
|
local data = note.body
|
|
local id = data.id
|
|
local index = data.index
|
|
Game.WeddingWallPicManager:log("MarriageCertificate:photoCompleteCallback1",id,self.weddingData.id,self.weddingData.photoidx)
|
|
if(self.weddingData and id == self.weddingData.id and index == self.weddingData.photoidx)then
|
|
self:progressCallback(data.progress)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:photoErrorCallback( note )
|
|
-- body
|
|
helplog("photoErrorCallback")
|
|
end
|
|
|
|
function MarriageCertificate:initData( )
|
|
-- body
|
|
self.data = self.viewdata.viewdata
|
|
self.weddingData = self.data.weddingData or {}
|
|
self:initDefaultTextureSize()
|
|
self:initScreenShotData()
|
|
if(self.weddingData and self.weddingData.photoidx ~= 0 )then
|
|
self.loadReady = false
|
|
else
|
|
self:changePhotoSize()
|
|
end
|
|
|
|
LeanTween.cancel(self.gameObject)
|
|
LeanTween.delayedCall(self.gameObject,0.1,function ( )
|
|
self:getPhoto()
|
|
end)
|
|
self:UpdateHead()
|
|
local str = "%Y.%m.%d %H:%M";
|
|
str = os.date(str, self.weddingData.weddingtime)
|
|
self.marriageTime.text = str
|
|
end
|
|
|
|
function MarriageCertificate:initView( )
|
|
-- body
|
|
self.photo = self:FindComponent("photo",UITexture)
|
|
self.progress = self:FindComponent("loadProgress",UILabel)
|
|
self:Hide(self.progress.gameObject)
|
|
|
|
self.portrait_1 = self:FindGO("portrait_1")
|
|
self.portrait_2 = self:FindGO("portrait_2")
|
|
|
|
self.coupleName1 = self:FindComponent("coupleName1",UILabel)
|
|
self.coupleName2 = self:FindComponent("coupleName2",UILabel)
|
|
self.marriageTime = self:FindComponent("marriageTime",UILabel)
|
|
self.closeBtn = self:FindGO("CloseButton")
|
|
self.screenShotHelper = self.gameObject:GetComponent(ScreenShotHelper)
|
|
|
|
self:GetGameObjects()
|
|
self:RegisterButtonClickEvent()
|
|
|
|
self.shareBtn = self:FindGO("shareBtn")
|
|
self:AddClickEvent(self.shareBtn,function ( )
|
|
self:Show(self.goUIViewSocialShare)
|
|
end)
|
|
|
|
self.defPhoto = self:FindGO("defPhoto")
|
|
self.defPhotoTx = self:FindComponent("defPhoto",UITexture)
|
|
self.bgTx1 = self:FindComponent("Texture_1",UITexture)
|
|
self.bgTx2 = self:FindComponent("Texture_2",UITexture)
|
|
PictureManager.Instance:SetWedding(MarriageCertificate.ProcessTextureName, self.bgTx1);
|
|
PictureManager.Instance:SetWedding(MarriageCertificate.ProcessTextureName, self.bgTx2);
|
|
local shareLabel = self:FindComponent("shareLabel",UILabel)
|
|
shareLabel.text = ZhString.WeddingPictureShareLabel
|
|
self:AddButtonEvent("innerBg",function ( )
|
|
PhotoDataProxy.Instance:setCurCertificateData(self.data)
|
|
PicutureWallSyncPanel.ViewType = UIViewType.Lv4PopUpLayer
|
|
self:sendNotification(UIEvent.JumpPanel, {view = PanelConfig.PicutureWallSyncPanel,viewdata = {frameId = 0,from = PicutureWallSyncPanel.PictureSyncFrom.WeddingCertificate}})
|
|
end)
|
|
|
|
self.closeShare = self:FindGO("closeShare")
|
|
self:AddClickEvent(self.closeShare,function ( )
|
|
-- body
|
|
self:Hide(self.goUIViewSocialShare)
|
|
end)
|
|
if(FloatAwardView.ShareFunctionIsOpen( ))then
|
|
self:Show(self.shareBtn)
|
|
else
|
|
self:Hide(self.shareBtn)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:UpdateHead( )
|
|
-- body
|
|
if(not self.targetCell1)then
|
|
local headCellObj = self:FindGO("portrait_2")
|
|
self.headCellObj = Game.AssetManager_UI:CreateAsset(Charactor.PlayerHeadCellResId,headCellObj)
|
|
tempVector3:Set(0,0,0)
|
|
self.headCellObj.transform.localPosition = tempVector3
|
|
self.targetCell1 = PlayerFaceCell.new(self.headCellObj)
|
|
self.targetCell1:HideHpMp()
|
|
self.targetCell1:HideLevel()
|
|
end
|
|
|
|
local infoData = WeddingProxy.Instance:GetWeddingInfo()
|
|
if(infoData)then
|
|
local id = infoData:GetPartnerGuid()
|
|
local coupleData = WeddingProxy.Instance:GetPortraitInfo(id)
|
|
local headData = HeadImageData.new()
|
|
headData:TransByWeddingCharData(coupleData)
|
|
self.coupleName2.text = coupleData.name
|
|
self.targetCell1:SetData(headData);
|
|
else
|
|
helplog("沒找到你老婆的頭像數據")
|
|
end
|
|
|
|
if(not self.targetCell2)then
|
|
local headCellObj = self:FindGO("portrait_1")
|
|
self.headCellObj = Game.AssetManager_UI:CreateAsset(Charactor.PlayerHeadCellResId,headCellObj)
|
|
tempVector3:Set(0,0,0)
|
|
self.headCellObj.transform.localPosition = tempVector3
|
|
self.targetCell2 = PlayerFaceCell.new(self.headCellObj)
|
|
self.targetCell2:HideHpMp()
|
|
self.targetCell2:HideLevel()
|
|
end
|
|
self.coupleName1.text = Game.Myself.data.name
|
|
headData = HeadImageData.new();
|
|
headData:TransByMyself();
|
|
-- headData.frame = nil;
|
|
headData.job = nil;
|
|
self.targetCell2:SetData(headData);
|
|
|
|
end
|
|
|
|
function MarriageCertificate:initDefaultTextureSize( )
|
|
-- body
|
|
self.originWith = self.photo.width
|
|
self.originHeight = self.photo.height
|
|
end
|
|
|
|
function MarriageCertificate:setTexture( texture )
|
|
-- body
|
|
-- local anglez = 0
|
|
-- if(self.anglez >=45 and self.anglez <= 135)then
|
|
-- anglez = 90
|
|
-- elseif(self.anglez >= 225 and self.anglez <= 315)then
|
|
-- anglez = 270
|
|
-- elseif(self.anglez >=135 and self.anglez <=225)then
|
|
-- anglez = 180
|
|
-- end
|
|
|
|
-- tempVector3:Set(0, 0, anglez)
|
|
-- tempRot.eulerAngles = tempVector3
|
|
-- self.PhotoCt.transform.localRotation = tempRot
|
|
|
|
local orginRatio = self.originWith / self.originHeight
|
|
local textureRatio = 0
|
|
-- if(anglez == 90 or anglez == 270)then
|
|
-- textureRatio = texture.height / texture.width
|
|
-- else
|
|
textureRatio = texture.width / texture.height
|
|
-- end
|
|
local wRatio = math.min(orginRatio,textureRatio) == orginRatio
|
|
local height = self.originHeight
|
|
local width = self.originWith
|
|
if(wRatio)then
|
|
height = self.originWith/textureRatio
|
|
else
|
|
width = self.originHeight*textureRatio
|
|
end
|
|
|
|
-- if(anglez == 90 or anglez == 270)then
|
|
-- self.photo.width = height
|
|
-- self.photo.height = width
|
|
-- else
|
|
self.photo.width = width
|
|
self.photo.height = height
|
|
-- end
|
|
Object.DestroyImmediate(self.photo.mainTexture)
|
|
self.photo.mainTexture = texture
|
|
end
|
|
|
|
function MarriageCertificate:getPhoto( )
|
|
-- body
|
|
if(self.weddingData and self.weddingData.photoidx and self.weddingData.photoidx ~= 0)then
|
|
helplog("getPhoto:",tostring(self.weddingData.photoidx),tostring(self.weddingData.photoidx))
|
|
Game.WeddingWallPicManager:GetWeddingPicture(self.weddingData.photoidx,self.weddingData.phototime)
|
|
PictureManager.Instance:UnLoadWedding(MarriageCertificate.BgTextureName,self.defPhotoTx);
|
|
self:Hide(self.defPhoto)
|
|
else
|
|
self:Show(self.defPhoto)
|
|
PictureManager.Instance:SetWedding(MarriageCertificate.BgTextureName, self.defPhotoTx);
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:progressCallback( progress )
|
|
-- body
|
|
self:Show(self.progress.gameObject)
|
|
progress = progress >=1 and 1 or progress
|
|
local value = progress*100
|
|
value = math.floor(value)
|
|
self.progress.text = value.."%"
|
|
end
|
|
|
|
function MarriageCertificate:completeCallback(bytes )
|
|
-- body
|
|
self:Hide(self.progress.gameObject)
|
|
if(bytes)then
|
|
local texture = Texture2D(0,0,TextureFormat.RGB24,false)
|
|
local bRet = ImageConversion.LoadImage(texture, bytes)
|
|
if( bRet)then
|
|
self.loadReady = true
|
|
self:setTexture(texture)
|
|
else
|
|
Object.DestroyImmediate(texture)
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function MarriageCertificate:GetGameObjects()
|
|
self.goUIViewSocialShare = self:FindGO('UIViewSocialShare', self.gameObject)
|
|
self.goButtonWechatMoments = self:FindGO('WechatMoments', self.goUIViewSocialShare)
|
|
self.goButtonWechat = self:FindGO('Wechat', self.goUIViewSocialShare)
|
|
self.goButtonQQ = self:FindGO('QQ', self.goUIViewSocialShare)
|
|
self.goButtonSina = self:FindGO('Sina', self.goUIViewSocialShare)
|
|
end
|
|
|
|
function MarriageCertificate:RegisterButtonClickEvent()
|
|
self:AddClickEvent(self.goButtonWechatMoments, function ()
|
|
self:OnClickForButtonWechatMoments()
|
|
end)
|
|
self:AddClickEvent(self.goButtonWechat, function ()
|
|
self:OnClickForButtonWechat()
|
|
end)
|
|
self:AddClickEvent(self.goButtonQQ, function ()
|
|
self:OnClickForButtonQQ()
|
|
end)
|
|
self:AddClickEvent(self.goButtonSina, function ()
|
|
self:OnClickForButtonSina()
|
|
end)
|
|
end
|
|
|
|
function MarriageCertificate:OnClickForButtonWechatMoments()
|
|
if SocialShare.Instance:IsClientValid(E_PlatformType.WechatMoments) then
|
|
self:sharePicture(E_PlatformType.WechatMoments, '', '')
|
|
else
|
|
MsgManager.ShowMsgByIDTable(561)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:OnClickForButtonWechat()
|
|
if SocialShare.Instance:IsClientValid(E_PlatformType.Wechat) then
|
|
self:sharePicture(E_PlatformType.Wechat, '', '')
|
|
else
|
|
MsgManager.ShowMsgByIDTable(561)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:OnClickForButtonQQ()
|
|
if SocialShare.Instance:IsClientValid(E_PlatformType.QQ) then
|
|
self:sharePicture(E_PlatformType.QQ, '', '')
|
|
else
|
|
MsgManager.ShowMsgByIDTable(562)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:OnClickForButtonSina()
|
|
if SocialShare.Instance:IsClientValid(E_PlatformType.Sina) then
|
|
local contentBody = GameConfig.PhotographResultPanel_ShareDescription
|
|
if contentBody == nil or #contentBody <= 0 then
|
|
contentBody = 'RO'
|
|
end
|
|
self:sharePicture(E_PlatformType.Sina, '', contentBody)
|
|
else
|
|
MsgManager.ShowMsgByIDTable(563)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:startSharePicture(texture,platform_type, content_title, content_body)
|
|
local picName = "Ro_"..tostring(os.time())
|
|
local path = PathUtil.GetSavePath(PathConfig.PhotographPath).."/"..picName
|
|
ScreenShot.SaveJPG(texture,path,100)
|
|
path = path..".jpg"
|
|
self:Log("MarriageCertificate sharePicture pic path:",path)
|
|
|
|
SocialShare.Instance:ShareImage(path, content_title, content_body, platform_type, function ( succMsg)
|
|
-- body
|
|
self:Log("SocialShare.Instance:Share success")
|
|
ROFileUtils.FileDelete(path)
|
|
|
|
if platform_type == E_PlatformType.Sina then
|
|
MsgManager.ShowMsgByIDTable(566)
|
|
end
|
|
end,function ( failCode,failMsg)
|
|
-- body
|
|
self:Log("SocialShare.Instance:Share failure")
|
|
ROFileUtils.FileDelete(path)
|
|
|
|
local errorMessage = failMsg or 'error'
|
|
if failCode ~= nil then
|
|
errorMessage = failCode .. ', ' .. errorMessage
|
|
end
|
|
MsgManager.ShowMsg('', errorMessage, MsgManager.MsgType.Float)
|
|
end,function ( )
|
|
-- body
|
|
self:Log("SocialShare.Instance:Share cancel")
|
|
ROFileUtils.FileDelete(path)
|
|
end)
|
|
end
|
|
function MarriageCertificate:sharePicture(platform_type, content_title, content_body)
|
|
-- body
|
|
self:startCaptureScreen(platform_type, content_title, content_body)
|
|
end
|
|
|
|
function MarriageCertificate:startCaptureScreen(platform_type, content_title, content_body)
|
|
-- body
|
|
local ui = NGUIUtil:GetCameraByLayername("UI");
|
|
self:changeUIState(true)
|
|
self.screenShotHelper:Setting(self.screenShotWidth, self.screenShotHeight, self. textureFormat, self.texDepth, self.antiAliasing)
|
|
self.screenShotHelper:GetScreenShot(function ( texture )
|
|
self:changeUIState(false)
|
|
self:startSharePicture(texture,platform_type, content_title, content_body)
|
|
end,ui)
|
|
end
|
|
|
|
function MarriageCertificate:changeUIState( isStart )
|
|
-- body
|
|
if(isStart)then
|
|
self:Hide(self.goUIViewSocialShare)
|
|
self:Hide(self.closeBtn)
|
|
self:Hide(self.shareBtn)
|
|
else
|
|
self:Show(self.goUIViewSocialShare)
|
|
self:Show(self.shareBtn)
|
|
self:Show(self.closeBtn)
|
|
end
|
|
end
|
|
|
|
function MarriageCertificate:initScreenShotData( )
|
|
-- body
|
|
self.screenShotWidth = -1
|
|
self.screenShotHeight = 1080
|
|
self.textureFormat = TextureFormat.RGB24
|
|
self.texDepth = 24
|
|
self.antiAliasing = ScreenShot.AntiAliasing.None
|
|
end
|
|
|
|
function MarriageCertificate:OnExit( )
|
|
-- body
|
|
LeanTween.cancel(self.gameObject)
|
|
PictureManager.Instance:UnLoadWedding(MarriageCertificate.BgTextureName,self.defPhotoTx);
|
|
PictureManager.Instance:UnLoadWedding(MarriageCertificate.ProcessTextureName, self.bgTx1);
|
|
PictureManager.Instance:UnLoadWedding(MarriageCertificate.ProcessTextureName, self.bgTx2);
|
|
Object.DestroyImmediate(self.photo.mainTexture)
|
|
end |