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.

84 lines
2.5 KiB

  1. --
  2. -- Author: songge
  3. -- Date: 2016-03-29 14:05:47
  4. -- 整个layer的基类,所有的layer都需要继承这个类。
  5. local BaseLayer = EapClass("BaseLayer", function ()
  6. return cc.Layer:create() -- 继承layer
  7. end)
  8. function BaseLayer:ctor(...)
  9. self:enableNodeEvents()
  10. self:onShow(...)
  11. end
  12. function BaseLayer:onShow(...)
  13. print("baselayer is inited")
  14. self:myShow(...)
  15. end
  16. function BaseLayer:onExit()
  17. print("baselayer is onExit")
  18. if (not self._cleanBaseOver) then
  19. self._cleanBaseOver = true
  20. self:myClose()
  21. end
  22. end
  23. function BaseLayer:closeShowLayer()
  24. self._cleanBaseOver = true
  25. self:myClose()
  26. self:removeFromParent()
  27. end
  28. function BaseLayer:myShow(...)
  29. assert(false, "myShow this method must be inherited") --这个方法必须被重写
  30. end
  31. function BaseLayer:myClose()
  32. assert(false, "myClose this method must be inherited") --这个方法必须被重写
  33. end
  34. -- listener
  35. function BaseLayer:addListener(__noswallow)
  36. print("BaseLayer:addListener successed")
  37. self._listener = cc.EventListenerTouchOneByOne:create()
  38. if (__noswallow) then
  39. self._listener:setSwallowTouches(false)
  40. else
  41. self._listener:setSwallowTouches(true)
  42. end
  43. self._listener:registerScriptHandler(handler(self,self.onTouchBegin),cc.Handler.EVENT_TOUCH_BEGAN);
  44. self._listener:registerScriptHandler(handler(self,self.onTouchMove),cc.Handler.EVENT_TOUCH_MOVED);
  45. self._listener:registerScriptHandler(handler(self,self.onTouchEnd),cc.Handler.EVENT_TOUCH_ENDED);
  46. self._listener:registerScriptHandler(handler(self,self.onTouchCancel),cc.Handler.EVENT_TOUCH_CANCELLED);
  47. cc.Director:getInstance():getEventDispatcher():addEventListenerWithSceneGraphPriority(self._listener,self);
  48. end
  49. function BaseLayer:removeListener()
  50. if self._listener then
  51. cc.Director:getInstance():getEventDispatcher():removeEventListener(self._listener);
  52. self._listener = nil
  53. end
  54. end
  55. --touch
  56. function BaseLayer:onTouchBegin(__touch,__event)
  57. --local _p = __touch:getLocation();
  58. --print("BaseLayer:onTouchBegin",_p.x,_p.y)
  59. return true;
  60. end
  61. function BaseLayer:onTouchMove(__touch,__event)
  62. end
  63. function BaseLayer:onTouchEnd(__touch,__event)
  64. end
  65. function BaseLayer:onTouchCancel(__touch,__eventt)
  66. end
  67. function BaseLayer:onCleanup()
  68. print("BaseLayer:onCleanup ")
  69. self:removeListener()
  70. end
  71. function BaseLayer:setListenerEnable(__state)
  72. if self._listener then
  73. self._listener:setEnabled(__state)
  74. end
  75. end
  76. return BaseLayer--BaseLayer_lua--BaseLayer.lua