|
- -- 游戏里面等待网络消息或者主动等待都可以调用这里的接口
- local WaitDialogManager = class("WaitDialogManager")
-
- function WaitDialogManager:ctor()
-
- -- 等待窗口
- self.showNetworkDialogCount = 0
- self.waitNetworkDialogUI = nil
-
- -- 透明蒙版
- self.TransparencyMaskCount = 0
- self.TransparencyMaskUI = nil
- end
-
-
- -- 显示一个等待对话框
- function WaitDialogManager:showWaitNetworkDialog(text)
- logD("showWaitNetworkDialog text: ",text)
- --logD("WaitDialogManager:showWaitNetworkDialog()", debug.traceback())
-
- if self.showNetworkDialogCount > 0 then
- -- 显示引用计数加1
- self.showNetworkDialogCount = self.showNetworkDialogCount + 1
-
- if text then
- self.waitNetworkDialogUI.HtmlCtrl:setText(text)
- self.waitNetworkDialogUI.HtmlCtrl:setVisible(true)
- self.waitNetworkDialogUI.ImageView_Text_bg:setVisible(true)
- else
- self.waitNetworkDialogUI.HtmlCtrl:setVisible(false)
- self.waitNetworkDialogUI.ImageView_Text_bg:setVisible(false)
- end
- logD("WaitDialogManager:showWaitNetworkDialog(), self.showNetworkDialogCount = " .. tostring(self.showNetworkDialogCount))
-
- return self.waitNetworkDialogUI;
- end
-
- -- 主场景没有则不显示
- if app.mainScene == nil then
- print("主场景不存在,不能显示等待Network窗口")
- end
-
- -- 在最上层显示一个等待窗口
- local ui = loadUI("res/ui/ui_tongyong/duanxinchonglian.ui")
- ui.Items.ImageView:setVisible(false)
- ui.Items.ImageView_ring:setVisible(false)
- ui.Items.ImageView_xquan:playClip("rotatexquan");
-
- if text then
- ui.Items.Text_1:setText(text);
- ui.Items.Text_1:setVisible(true)
- ui.Items.ImageView_Text_bg:setVisible(true)
- else
- ui.Items.Text_1:setVisible(false)
- ui.Items.ImageView_Text_bg:setVisible(false)
- end
-
- local modelDialog = loadUI("res/ui/ui_common/ModelDialog.ui")
- modelDialog.Items.ImageView_Background:setVisible(false);
- modelDialog.Items.Background:setVisible(false);
-
- modelDialog:setSize(cc.Director:getInstance():getWinSize())
- modelDialog.Items.Container:addChild(ui)
-
- modelDialog:setSendTouchEventParent(false);
- -- 让其显示在最上层
- modelDialog:setLocalZOrder(UIZOrder.NetWaitOrder)
- -- 并且吃掉最上层的触摸事件
- modelDialog:setGlobalZOrder(UIZOrder.NetWaitOrder)
-
- app:showNetWaitDialog(modelDialog)
- modelDialog:registerClick(function() return true end,nil,nil,true);
-
- modelDialog.HtmlCtrl = ui.Items.Text_1;
- modelDialog.ImageView_Text_bg = ui.Items.ImageView_Text_bg
-
- self.waitNetworkDialogUI = modelDialog
- self.showNetworkDialogCount = self.showNetworkDialogCount + 1
- logD("WaitDialogManager:showWaitNetworkDialog(), self.showNetworkDialogCount = " .. tostring(self.showNetworkDialogCount))
- return self.waitNetworkDialogUI;
- end
-
- -- 关闭等待窗口
- function WaitDialogManager:closeWaitNetworkDialog()
- --logD("WaitDialogManager:closeWaitNetworkDialog()", debug.traceback())
-
- if self.showNetworkDialogCount <= 0 then
- print("没有等待Network窗口可以关闭")
- return
- end
-
- self.showNetworkDialogCount = self.showNetworkDialogCount - 1
- logD("WaitDialogManager:closeWaitNetworkDialog(), self.showNetworkDialogCount = " .. tostring(self.showNetworkDialogCount))
-
- if self.showNetworkDialogCount <= 0 then
- print("关闭Network窗口,引用计数" .. self.showNetworkDialogCount)
- local count = self.waitNetworkDialogUI:getReferenceCount()
- if count > 0 then
- self.waitNetworkDialogUI:removeFromParent();
- self.waitNetworkDialogUI = nil
- end
- else
- print("等待Network窗口引用计数减一" .. self.showNetworkDialogCount)
- end
- end
-
- -- 关闭所有的网络等待窗口
- function WaitDialogManager:closeAllWaitNet()
- --logD("WaitDialogManager:closeAllWaitNet()", debug.traceback())
- if self.showNetworkDialogCount <= 0 then
- return
- end
-
- -- 引用计数设为0
- self.showNetworkDialogCount = 0;
-
- -- 关闭等待窗口
- if self.waitNetworkDialogUI and self.waitNetworkDialogUI:getReferenceCount() > 0 then
- self.waitNetworkDialogUI:removeFromParent()
- self.waitNetworkDialogUI = nil
- end
- end
-
- function WaitDialogManager:closeAllNetWait()
- --logD("WaitDialogManager:closeAllNetWait()", debug.traceback())
- self:closeAllWaitNet()
- end
-
-
-
-
- -- 显示一个透明的蒙版,阻挡所有的点击事件
- function WaitDialogManager:showTransparencyMask()
- --logD("WaitDialogManager:showTransparencyMask()", debug.traceback())
-
- if self.TransparencyMaskCount > 0 then
- -- 显示引用计数加1
- self.TransparencyMaskCount = self.TransparencyMaskCount + 1
- logD("WaitDialogManager:showTransparencyMask(), self.TransparencyMaskCount = " .. tostring(self.TransparencyMaskCount))
- return
- end
-
- -- 主场景没有则不显示
- if app.mainScene == nil then
- print("主场景不存在,不能显示透明等待窗口")
- return
- end
-
- -- 在最上层显示一个等待窗口
- local ui = loadUI("res/ui/ui_common/TransparencyMask.ui")
- ui:setSendTouchEventParent(false);
- app:showNetWaitDialog(ui)
- -- app.mainScene:addChild(ui, UIZOrder.FadeOrder)
- ui:setGlobalZOrder(UIZOrder.FadeOrder)
- self.TransparencyMaskUI = ui
- -- 显示引用计数+1
- self.TransparencyMaskCount = self.TransparencyMaskCount + 1
- logD("WaitDialogManager:showTransparencyMask(), self.TransparencyMaskCount = " .. tostring(self.TransparencyMaskCount))
- end
-
- -- 隐藏透明的蒙版
- function WaitDialogManager:closeTransparencyMask()
- --logD("WaitDialogManager:closeTransparencyMask()", debug.traceback())
-
- if self.TransparencyMaskCount <= 0 then
- print("没有透明等待窗口需要关闭")
- return
- end
-
- self.TransparencyMaskCount = self.TransparencyMaskCount - 1
- logD("WaitDialogManager:closeTransparencyMask(), self.TransparencyMaskCount = " .. tostring(self.TransparencyMaskCount))
-
- if self.TransparencyMaskCount <= 0 then
- local count = self.TransparencyMaskUI:getReferenceCount()
- if count > 0 then
- -- 关闭等待窗口
- self.TransparencyMaskUI:removeFromParent()
- self.TransparencyMaskUI = nil
- end
- end
- end
-
- return WaitDialogManager
|