源战役客户端
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 
 

202 lignes
6.6 KiB

--通用兑换展示界面
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