local yibinmajiangDingQueAniView = class("yibinmajiangDingQueAniView", cc.UIView) function yibinmajiangDingQueAniView:ctor() yibinmajiangDingQueAniView.super.ctor(self) self:setAnchorPoint(cc.p(0, 0)) self._initAni = {} end -- 加载UI function yibinmajiangDingQueAniView:loadUI() local ui = loadUI("mj_yibinmajiang/res/ui_fangjian/mj_yibinmajiang_dingque_ani.ui") self.ui = ui self:addChild(ui) end function yibinmajiangDingQueAniView:onEnter() yibinmajiangDingQueAniView.super.onEnter(self) self:loadUI() self:initViews() self:initValue() end function yibinmajiangDingQueAniView:onExit() yibinmajiangDingQueAniView.super.onExit(self) end -- 初始化界面 function yibinmajiangDingQueAniView:initViews() self:resetState() end -- 初始值 function yibinmajiangDingQueAniView:initValue() for i = 1, 4 do local str = string.format('ImageView_DingQue_%d', i) self._initAni[i] = self.ui.Items[str]:getPosition() end end -- 定缺返回结果动画(1个1个传) dingqueValue:key = viewIndex, value = value function yibinmajiangDingQueAniView:showDingQueResultAniOneByOne(viewId, dingqueValue, posTable, endCallback) local node = self:cloneOneNode(viewId, dingqueValue) if not node then return end self:startAni(node, posTable, endCallback) end -- 播放动画 function yibinmajiangDingQueAniView:startAni(node, posTable, endCallback) node:setVisible(true) local time = 0.5 local scaleTo = 0.29 local delayTime = 0.5 local dt = cc.DelayTime:create(delayTime) local move = cc.MoveTo:create(time, posTable) local scale = cc.ScaleTo:create(time, scaleTo) local callback = cc.CallFunc:create(function() node:removeFromParent() if endCallback then endCallback() end end) if node then node:runAction(cc.Sequence:create(dt, cc.Spawn:create(move, scale), callback)) end end -- 默认状态 function yibinmajiangDingQueAniView:resetState() for i = 1, 4 do local str = string.format('ImageView_DingQue_%d', i) local node = self.ui.Items[str] node:setScale(1) node:setVisible(false) node:stopAllActions() end end -- 克隆获得一个节点 function yibinmajiangDingQueAniView:cloneOneNode(viewId, dingqueValue) if not viewId or not dingqueValue then return end local temp = { [0] = 'wan', [1] = 'tong', [2] = 'tiao', } local str = string.format('ImageView_DingQue_%d', viewId) local node = self.ui.Items[str]:getCopied() local texturePath = string.format('mj_yibinmajiang/res/zy_fangjian/operate/yibinmajiang_dingque_operate_%s.png', temp[dingqueValue]) node:loadTexture(texturePath) self.ui.Items.Layout_Ani:addChild(node) return node end return yibinmajiangDingQueAniView