cocos2d-x lua 使用自定义消息EventCustom

cocos2d-x lua 使用自定义消息EventCustom,第1张

概述cocos2d-x lua 使用自定义消息EventCustom version: cocos2d-x 3.6 1.发送消息 -- post message-- event将会被传递给消息接收函数,所以所有需要传递的数据都可放到event中local event = cc.EventCustom:new("MSG_TEST")event._usedata = {["state"]=self. cocos2d-x lua 使用自定义消息EventCustom

version: 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.监听与接收 监听消息需要调用self:enableNodeEvents()使消息接收有效
-- Listenerlocal 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) endfunction DogSprite:onChangeState(event)    local dogID = event._usedata["dogID"]    local actionID = event._usedata["actionID"]    local eventname = event:getEventname()endreturn ActorSprite
3.清理 在ActorSprite被释放之后,需要将监听删除,否则收到消息后self为nil,将会导致异常(onCleanup将会在节点被删除时自动调用)。
function ActorSprite:onCleanup()  -- cc.Node    for i,var in ipairs(self.eventListeners) do        cc.Director:getInstance():getEventdispatcher():removeEventListener(var)    end  end
总结

以上是内存溢出为你收集整理的cocos2d-x lua 使用自定义消息EventCustom全部内容,希望文章能够帮你解决cocos2d-x lua 使用自定义消息EventCustom所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1059672.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存