You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 rivejä
2.8 KiB

  1. local yibinmajiangDingQueAniView = class("yibinmajiangDingQueAniView", cc.UIView)
  2. function yibinmajiangDingQueAniView:ctor()
  3. yibinmajiangDingQueAniView.super.ctor(self)
  4. self:setAnchorPoint(cc.p(0, 0))
  5. self._initAni = {}
  6. end
  7. -- 加载UI
  8. function yibinmajiangDingQueAniView:loadUI()
  9. local ui = loadUI("mj_yibinmajiang/res/ui_fangjian/mj_yibinmajiang_dingque_ani.ui")
  10. self.ui = ui
  11. self:addChild(ui)
  12. end
  13. function yibinmajiangDingQueAniView:onEnter()
  14. yibinmajiangDingQueAniView.super.onEnter(self)
  15. self:loadUI()
  16. self:initViews()
  17. self:initValue()
  18. end
  19. function yibinmajiangDingQueAniView:onExit()
  20. yibinmajiangDingQueAniView.super.onExit(self)
  21. end
  22. -- 初始化界面
  23. function yibinmajiangDingQueAniView:initViews()
  24. self:resetState()
  25. end
  26. -- 初始值
  27. function yibinmajiangDingQueAniView:initValue()
  28. for i = 1, 4 do
  29. local str = string.format('ImageView_DingQue_%d', i)
  30. self._initAni[i] = self.ui.Items[str]:getPosition()
  31. end
  32. end
  33. -- 定缺返回结果动画(1个1个传) dingqueValue:key = viewIndex, value = value
  34. function yibinmajiangDingQueAniView:showDingQueResultAniOneByOne(viewId, dingqueValue, posTable, endCallback)
  35. local node = self:cloneOneNode(viewId, dingqueValue)
  36. if not node then
  37. return
  38. end
  39. self:startAni(node, posTable, endCallback)
  40. end
  41. -- 播放动画
  42. function yibinmajiangDingQueAniView:startAni(node, posTable, endCallback)
  43. node:setVisible(true)
  44. local time = 0.5
  45. local scaleTo = 0.29
  46. local delayTime = 0.5
  47. local dt = cc.DelayTime:create(delayTime)
  48. local move = cc.MoveTo:create(time, posTable)
  49. local scale = cc.ScaleTo:create(time, scaleTo)
  50. local callback = cc.CallFunc:create(function()
  51. node:removeFromParent()
  52. if endCallback then
  53. endCallback()
  54. end
  55. end)
  56. if node then
  57. node:runAction(cc.Sequence:create(dt, cc.Spawn:create(move, scale), callback))
  58. end
  59. end
  60. -- 默认状态
  61. function yibinmajiangDingQueAniView:resetState()
  62. for i = 1, 4 do
  63. local str = string.format('ImageView_DingQue_%d', i)
  64. local node = self.ui.Items[str]
  65. node:setScale(1)
  66. node:setVisible(false)
  67. node:stopAllActions()
  68. end
  69. end
  70. -- 克隆获得一个节点
  71. function yibinmajiangDingQueAniView:cloneOneNode(viewId, dingqueValue)
  72. if not viewId or not dingqueValue then
  73. return
  74. end
  75. local temp = {
  76. [0] = 'wan',
  77. [1] = 'tong',
  78. [2] = 'tiao',
  79. }
  80. local str = string.format('ImageView_DingQue_%d', viewId)
  81. local node = self.ui.Items[str]:getCopied()
  82. local texturePath = string.format('mj_yibinmajiang/res/zy_fangjian/operate/yibinmajiang_dingque_operate_%s.png', temp[dingqueValue])
  83. node:loadTexture(texturePath)
  84. self.ui.Items.Layout_Ani:addChild(node)
  85. return node
  86. end
  87. return yibinmajiangDingQueAniView