--通用兑换展示界面
|
|
ComDialogueShowView = ComDialogueShowView or BaseClass(BaseView)
|
|
local ComDialogueShowView = ComDialogueShowView
|
|
|
|
ComDialogueShowView.Type = {
|
|
DunNomal = 1,--副本进入
|
|
DunWave = 2,--波数类型
|
|
DunForever = 3,--副本进入永久类型
|
|
}
|
|
|
|
function ComDialogueShowView:__init()
|
|
self.base_file = "uiComponent"
|
|
self.layout_file = "ComDialogueShowView"
|
|
self.layer_name = "Top"
|
|
self.mask_open_sound = true
|
|
self.mask_close_sound = true
|
|
self.use_background = false
|
|
self.destroy_imm = true
|
|
self.change_scene_close = false
|
|
self.append_to_ctl_queue = false --是否要添加进界面堆栈
|
|
self.need_show_money = false --是否要显示顶部的金钱栏
|
|
self.model = MainUIModel:getInstance()
|
|
self.width = 408--预制宽度
|
|
self.origin_x = 0--起始X坐标
|
|
self.delay_time = 5--默认时间
|
|
self.tween_lite_list = {}
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
end
|
|
self.open_callback = function ( )
|
|
self:OpenSuccess()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function ComDialogueShowView:DestroySuccess()
|
|
self:StopDialogueAction()
|
|
end
|
|
|
|
function ComDialogueShowView:LoadSuccess()
|
|
local nodes = {
|
|
"con/nameBg:img", "con/desc:tmp", "con/bg:img", "con:obj", "con/name:tmp", "con/headImg:img",
|
|
}
|
|
self:GetChildren(nodes)
|
|
|
|
--创建时默认将alpha置为0隐藏
|
|
self.con_obj:GetComponent("CanvasGroup").alpha = 0
|
|
|
|
lua_resM:setImageSprite(self, self.nameBg_img, "comDialogue_asset", "com_dialogue_name_bg")
|
|
lua_resM:setImageSprite(self, self.bg_img, "comDialogue_asset", "com_dialogue_bg")
|
|
|
|
if self.need_refreshData then
|
|
self:UpdateView( )
|
|
end
|
|
self.transform.anchoredPosition = Vector2(ClientConfig.iphone_x_offset_left, -121)
|
|
end
|
|
|
|
function ComDialogueShowView:AddEvent()
|
|
-- local function onBtnClickHandler(target,x,y)
|
|
-- if target == self.mask_bg_obj then--关闭
|
|
-- self:Close()
|
|
-- end
|
|
-- end
|
|
-- AddClickEvent(self.mask_bg_obj,onBtnClickHandler,1)
|
|
|
|
local function onOrientationChange()
|
|
self.transform.anchoredPosition = Vector2(ClientConfig.iphone_x_offset_left, -121)
|
|
end
|
|
self:BindEvent(GlobalEventSystem, EventName.ORIENTATION_DID_CHANGE, onOrientationChange)
|
|
|
|
-- local data = {
|
|
-- head_type = 1,
|
|
-- desc = "当时我很机智,我说我不会游泳 我妈妈会游泳,再说你也会!",
|
|
-- head_name = "赤骨光子",
|
|
-- hide_time = 5,
|
|
-- dalay_time = 3,
|
|
-- is_task_type = false,--是否是任务配置类型 如果是要隐藏功能预告界面
|
|
-- }
|
|
local function onShowDialogueView(data)--展示对话界面
|
|
if not self.is_loaded or not data or not data.head_type then return end
|
|
data.desc = ChuanWenManager:getInstance():FormatColorTag2(data.desc)--这边要解析一下颜色
|
|
self:StopDialogueAction()
|
|
local function dalayFunc( ... )
|
|
if data.is_task_type then
|
|
GlobalEventSystem:Fire(EventName.HIDE_LEFT_MIDDLE_VIEW, true, MainUIModel.MAIN_MODE)
|
|
end
|
|
self:StartDialogueAction(data)
|
|
end
|
|
self.delay_timer_id = setTimeout(dalayFunc,data.dalay_time)
|
|
end
|
|
self:BindEvent(GlobalEventSystem, EventName.SHOW_COM_DIALOGUE_SHOW_VIEW, onShowDialogueView)
|
|
|
|
local function stopDialogueFunc( ... )
|
|
self:StopDialogueAction()
|
|
end
|
|
self:BindEvent(GlobalEventSystem, EventName.STOP_COM_DIALOGUE_SHOW_VIEW, onShowDialogueView)
|
|
|
|
local function changeSceneViewFuc( ... )--切换场景就要隐藏
|
|
self:StopDialogueAction()
|
|
end
|
|
self:BindEvent(GlobalEventSystem, SceneEventType.SCENE_CHANGED, changeSceneViewFuc)
|
|
end
|
|
|
|
--data.delay_time--关闭时间
|
|
--data.title_res--标题资源
|
|
--data.title_ab_name--标题资源ab包路径
|
|
--data.award = {kind,type_id,goods_num,goods_vo}
|
|
--data.col_num = 6 -- 每行展示的个数
|
|
function ComDialogueShowView:Open( )
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function ComDialogueShowView:OpenSuccess( )
|
|
self:UpdateView()
|
|
end
|
|
|
|
function ComDialogueShowView:UpdateView( )
|
|
if self.is_loaded then
|
|
self.need_refreshData = false
|
|
else
|
|
self.need_refreshData = true
|
|
return
|
|
end
|
|
if not self.data then return end
|
|
end
|
|
|
|
--开始对话展示
|
|
function ComDialogueShowView:StartDialogueAction( data )
|
|
lua_resM:setImageSprite(self, self.headImg_img, "comDialogue_asset", "com_dialogue_head_"..data.head_type, true)
|
|
self.name_tmp.text = data.head_name
|
|
self.desc_tmp.text = data.desc
|
|
self:UpdateTime(data)
|
|
local function anim_end_func( ... )
|
|
|
|
end
|
|
local pos = data.pos or Vector3(0,0,0)
|
|
self.tween_lite_list[1] = TweenLite.to(self, self.con.transform, TweenLite.UiAnimationType.POS, pos, 0.3)
|
|
self.tween_lite_list[2] = TweenLite.to(self, self.con, TweenLite.UiAnimationType.ALPHA_ALL, 1, 0.3,anim_end_func)
|
|
-- 通知动画开始
|
|
GlobalEventSystem:Fire(EventName.START_COM_DIALOGUE_SHOW_ANIM)
|
|
self.model:SetDialogueActionFlag(true)
|
|
end
|
|
|
|
function ComDialogueShowView:HideDialogueAction( data )
|
|
self.con_obj:GetComponent("CanvasGroup").alpha = 1
|
|
SetAnchoredPosition(self.con,0,0)
|
|
local function anim_end_func( ... )--动画执行完要吧功能预告展示回来
|
|
self:StopDialogueAction(data)
|
|
end
|
|
local pos = Vector3(-self.width,0,0)
|
|
self.tween_lite_list[3] = TweenLite.to(self, self.con.transform, TweenLite.UiAnimationType.POS, pos, 0.3,anim_end_func)
|
|
self.tween_lite_list[4] = TweenLite.to(self, self.con, TweenLite.UiAnimationType.ALPHA_ALL, 0, 0.3,anim_end_func)
|
|
end
|
|
|
|
--停止对话展示
|
|
function ComDialogueShowView:StopDialogueAction( data )
|
|
if data and data.is_task_type then
|
|
GlobalEventSystem:Fire(EventName.HIDE_LEFT_MIDDLE_VIEW, false, MainUIModel.MAIN_MODE)
|
|
end
|
|
-- 对话展示结束后通知绑定了这个事件的界面用于做其他的展示逻辑
|
|
self.model:SetDialogueActionFlag(false)
|
|
GlobalEventSystem:Fire(EventName.FINISHED_COM_DIALOGUE_SHOW_ANIM)
|
|
|
|
self.con_obj:GetComponent("CanvasGroup").alpha = 0
|
|
SetAnchoredPosition(self.con,-self.width,0)
|
|
if self.timer_id then
|
|
GlobalTimerQuest:CancelQuest(self.timer_id)
|
|
self.timer_id = nil
|
|
end
|
|
if self.delay_timer_id then
|
|
GlobalTimerQuest:CancelQuest(self.delay_timer_id)
|
|
self.delay_timer_id = nil
|
|
end
|
|
for i,v in ipairs(self.tween_lite_list) do
|
|
if v then
|
|
TweenLite.Stop(v)
|
|
v = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
function ComDialogueShowView:UpdateTime( data )
|
|
local time = data.hide_time or self.delay_time
|
|
local function countDown()
|
|
if self._use_delete_method then return end
|
|
if not data then return end
|
|
time = time - 1
|
|
if time > 0 then
|
|
|
|
else
|
|
self:HideDialogueAction(data)
|
|
end
|
|
end
|
|
countDown()
|
|
if not self.timer_id then
|
|
self.timer_id = GlobalTimerQuest:AddPeriodQuest(countDown,1)
|
|
end
|
|
end
|