如何在Corona SDK Lua中进行对象间通信(例如触发事件)?

如何在 Corona 中进行对象间通信(如触发事件)?提供一些示例代码会很好。

注:

  • 我发现有一种方法可以在对象上创建自定义事件,但似乎你需要先得到该对象的句柄才能触发(调度)它。
  • 我感兴趣的是两个完全独立的对象。例如,假设你在屏幕上点击了一个显示对象,希望能够以全局事件类型的方式说“我的库存已增加”,然后让需要订阅此事件的任何其他显示对象都能够接收到并相应地调整他们的显示。订阅

原文链接 https://stackoverflow.com/questions/10477424

点赞
stackoverflow用户1019194
stackoverflow用户1019194

如果您需要全局事件,请考虑使用**Runtime:addEventListener()**。

local function invIncreased(event)
    print("来自" .. event.target .. "的库存增加事件已处理")
end

local image = display.newImage("image.png")
Runtime:addEventListener("MyInventoryHasIncreased", invIncreased)

local event = {name="MyInventoryHasIncreased", target=image}
Runtime:dispatchEvent(event)

您可以将Runtime:addEventListener与Runtime:dispatchEvent分开,以获取您想要的对象之间的通信。

2012-05-07 08:32:13