DialogueChooseMessage = DialogueChooseMessage or BaseClass(BaseView) local DialogueChooseMessage = DialogueChooseMessage DialogueChooseMessage.MSG_INFO = { [1] = "人物性格 理性+%s", [2] = "人物性格 感性+%s", [3] = "人物性格 中性+%s", [4] = "自由性格点数 +%s", } function DialogueChooseMessage:__init() self.base_file = "dialogue" self.layout_file = "DialogueChooseMessage" self.layer_name = "Top" self.destroy_imm = true self.use_background = false self.change_scene_close = true self.load_callback = function () self:LoadSuccess() end self.open_callback = function ( ) self:OpenSuccess() end self.destroy_callback = function ( ) self:DestroySuccess() end end function DialogueChooseMessage:Open( choose_type, choose_value ) self.choose_type, self.choose_value = choose_type, choose_value BaseView.Open(self) end --重复调用,省去open逻辑 function DialogueChooseMessage:SetData( choose_type, choose_value ) self.choose_type, self.choose_value = choose_type, choose_value self:UpdateView() end function DialogueChooseMessage:LoadSuccess() self.nodes = { "cont:obj", "cont/nastic_bg:obj", "cont/intellect_bg:obj", "cont/value:tmp", "cont/indecision_bg:obj", } self:GetChildren(self.nodes) end function DialogueChooseMessage:OpenSuccess() if self.choose_type and self.choose_type ~= 0 then -- 更新性格节点数据 -- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16700) -- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 1) -- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 2) -- NatureModel:getInstance():Fire(NatureModel.REQUEST_CCMD_EVENT, 16701, 3) -- 刷新界面 self:UpdateView() end end function DialogueChooseMessage:UpdateView() if IsNull(self.transform) then return end self.intellect_bg_obj:SetActive(self.choose_type == 1) self.nastic_bg_obj:SetActive(self.choose_type == 2) self.indecision_bg_obj:SetActive(self.choose_type == 3 or self.choose_type == 4) local str = DialogueChooseMessage.MSG_INFO[self.choose_type] self.value_tmp.text = str and string.format(str, self.choose_value) or "" self:PlayAnim() end function DialogueChooseMessage:PlayAnim( ) if self.cont then cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont) end SetLocalPositionY(self.cont, 0) local in_pos_y, out_pos_y = 80, 90 local function on_fly_end( ) if self.cont then SetLocalPositionY(self.cont, 999999) cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont) end end local move_in_action = cc.MoveBy.New(0.7, 0 , in_pos_y) local move_out_action = cc.MoveBy.New(0.6, 0 , out_pos_y) local end_action = cc.CallFunc.New(on_fly_end) local action = cc.Sequence.New(move_in_action, cc.DelayTime.New(0.3), move_out_action, end_action) cc.ActionManager:getInstance():addAction(action, self.cont) end function DialogueChooseMessage:DestroySuccess( ) if self.cont then cc.ActionManager:getInstance():removeAllActionsFromTarget(self.cont) end end