-- -- Author: songge -- Date: 2016-03-29 14:05:47 -- 整个layer的基类,所有的layer都需要继承这个类。 local BaseLayer = EapClass("BaseLayer", function () return cc.Layer:create() -- 继承layer end) function BaseLayer:ctor(...) self:enableNodeEvents() self:onShow(...) end function BaseLayer:onShow(...) print("baselayer is inited") self:myShow(...) end function BaseLayer:onExit() print("baselayer is onExit") if (not self._cleanBaseOver) then self._cleanBaseOver = true self:myClose() end end function BaseLayer:closeShowLayer() self._cleanBaseOver = true self:myClose() self:removeFromParent() end function BaseLayer:myShow(...) assert(false, "myShow this method must be inherited") --这个方法必须被重写 end function BaseLayer:myClose() assert(false, "myClose this method must be inherited") --这个方法必须被重写 end -- listener function BaseLayer:addListener(__noswallow) print("BaseLayer:addListener successed") self._listener = cc.EventListenerTouchOneByOne:create() if (__noswallow) then self._listener:setSwallowTouches(false) else self._listener:setSwallowTouches(true) end self._listener:registerScriptHandler(handler(self,self.onTouchBegin),cc.Handler.EVENT_TOUCH_BEGAN); self._listener:registerScriptHandler(handler(self,self.onTouchMove),cc.Handler.EVENT_TOUCH_MOVED); self._listener:registerScriptHandler(handler(self,self.onTouchEnd),cc.Handler.EVENT_TOUCH_ENDED); self._listener:registerScriptHandler(handler(self,self.onTouchCancel),cc.Handler.EVENT_TOUCH_CANCELLED); cc.Director:getInstance():getEventDispatcher():addEventListenerWithSceneGraphPriority(self._listener,self); end function BaseLayer:removeListener() if self._listener then cc.Director:getInstance():getEventDispatcher():removeEventListener(self._listener); self._listener = nil end end --touch function BaseLayer:onTouchBegin(__touch,__event) --local _p = __touch:getLocation(); --print("BaseLayer:onTouchBegin",_p.x,_p.y) return true; end function BaseLayer:onTouchMove(__touch,__event) end function BaseLayer:onTouchEnd(__touch,__event) end function BaseLayer:onTouchCancel(__touch,__eventt) end function BaseLayer:onCleanup() print("BaseLayer:onCleanup ") self:removeListener() end function BaseLayer:setListenerEnable(__state) if self._listener then self._listener:setEnabled(__state) end end return BaseLayer--BaseLayer_lua--BaseLayer.lua