cocos2d-x lua 使用自定义消息EventCustom
发布时间:2020-12-14 21:25:45 所属栏目:百科 来源:网络整理
导读:cocos2d-x lua 使用自定义消息EventCustom version: cocos2d-x 3.6 1.发送消息 -- post message-- event 将会被传递给消息接收函数,所以所有需要传递的数据都可放到 event 中local event = cc.EventCustom: new ( "MSG_TEST" ) event ._usedata = {[ "state
cocos2d-x lua 使用自定义消息EventCustomversion: cocos2d-x 3.6 1.发送消息-- post message
-- event将会被传递给消息接收函数,所以所有需要传递的数据都可放到event中
local event = cc.EventCustom:new("MSG_TEST")
event._usedata = {["state"]=self.curState,["actionId"]=self.actionId}
cc.Director:getInstance():getEventDispatcher():dispatchEvent(event)
2.监听与接收
-- listener
local ActorSprite = class("ActorSprite",cc.Node)
function ActorSprite:initEventListener()
self:enableNodeEvents() -- cc.Node
self.eventListeners = {} -- user to delete when dtor
local listener = cc.EventListenerCustom:create(MSG_TEST,handler(self,self.onChangeState))
local eventDispatcher = self:getEventDispatcher()
eventDispatcher:addEventListenerWithFixedPriority(listener,1)
table.insert(self.eventListeners,listener)
end
function DogSprite:onChangeState(event)
local dogId = event._usedata["dogId"]
local actionId = event._usedata["actionId"]
local eventName = event:getEventName()
end
return ActorSprite
3.清理
function ActorSprite:onCleanup() -- cc.Node
for i,var in ipairs(self.eventListeners) do
cc.Director:getInstance():getEventDispatcher():removeEventListener(var)
end
end
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |