quick 自定义事件,利用这个事件可以传递消息

EXNode.lua

local EXNode = class("EXNode", function()
    return display.newNode()
end)

function EXNode:ctor()
    cc.GameObject.extend(self):addComponent("components.behavior.EventProtocol"):exportMethods()

    cc.ui.UIPushButton.new({normal = "button_normal.jpg", pressed = "button_selected.jpg"})
        :align(display.CENTER, display.cx, display.cy)
        :onButtonClicked(function()
            self:getChildEvent()
        end)
        :addTo(self)
end

function EXNode:getChildEvent()
    self:dispatchEvent({name = "MY_NEWS"})
end

function EXNode:onEnter()
    self:setTouchEnabled(true)
end

function EXNode:onExit()
    self:removeAllEventListeners()
end

return EXNode

scene


local EXNode=require("src.app.scenes.EXNode")

local TestScene1 = class("TestScene1", function()
    return display.newScene("TestScene1")
end)


function TestScene1:ctor()
    self.exNode = EXNode.new()
    self.exNode:addEventListener("MY_NEWS", handler(self, self.onMynews))
    self:addChild(self.exNode)
end

function TestScene1:onMynews()
    printLog("INFO","父Node知道了子Node发送过来的消息")
end

function TestScene1:enterNextScene()

    if sceneIndex < #sceneList then sceneIndex=sceneIndex+1 end
    app:enterScene(sceneList[sceneIndex])
end


return TestScene1

原文地址:https://www.cnblogs.com/yufenghou/p/4517936.html