--自定义事件
--自定义事件--加载EventProctocol组件--在MainScene:ctor()中 加入如下代码,就可以让MainScene拥有EventProtocol的方法cc(self):addComponent("component.behavior.EventProtocol"):exportMethods()--exportMethods()function EventProtocol:exportMethods()self:exportmethods_({"addEventListener","dispatchEvent","removeEventListenr","removeEventListenersByTag","removeEventListenersByEvent","removeAllEventListenersForEvent","removeAllEventListeners","hasEventListener","dumpAllEventListeners",})return self.target_end
--示例
local OneSprite = class("OneSprite",function()return display.newSprite("heart.png") end)function OneSprite:ctor()--加载组件以扩展自定义事件cc(self):addComponent("components.behavior.EventProtocol"):exportMethods()self:performWithDelay(function() self:hide()end,3.0)end-- 抽象hide 方法调用这个方法隐藏精灵并发送一个精灵隐藏的事件监听给监听器function OneSprite:hide()self:setVisible(false)--发送事件 参数为table name字段不能为空self:dispatchEvent({name= "HideSprite"})endfunction OneSprite:onEnter()endfunction OneSprite:onExit()self:removeAllEventListeners()endreturn OneSprite
local OneSprite = import("app.scenes.OneSprite")local MainScene = class("MainScene",function() return display.newScene("MainScene") end)function MainScene:ctor()local sprite = OneSprite.new()sprite:pos(display.size.width/2,display.size.height/2)sprite:addTo(self):addEventListener("HideSprite",handler(self,self.onEvent))endfunction MainScene:onEvent()print("sprite hide!")endfunction MainScene:onEnter()endfunction MainScene:onExit()endreturn MainScene

浙公网安备 33010602011771号