--自定义事件
--自定义事件
--加载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"})
end
function OneSprite:onEnter()
end
function OneSprite:onExit()
self:removeAllEventListeners()
end
return 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))
end
function MainScene:onEvent()
print("sprite hide!")
end
function MainScene:onEnter()
end
function MainScene:onExit()
end
return MainScene