2012-05-07 83 views
0

如何在Corona中做對象間的通信(例如觸發事件)?一些示例代碼會很好。如何在Corona SDK Lua中進行對象間通信(例如觸發事件)?

注:

  • 我看到有一種方法可以在對象上創建自定義的事件,但它似乎你真的需要一個句柄對象後,才能觸發(派遣)它。

  • 我在這裏感興趣的是兩個完全獨立的對象。例如,假設您點擊屏幕上的顯示對象,在全局事件類型意義上說「MyInventoryHasIncreased」,然後讓任何其他需要訂閱的顯示對象選取它並相應地調整其顯示。 訂閱

回答

2

如果你需要的全球性事件,想想使用運行時:使用addEventListener()。從運行時的addEventListener:

local function invIncreased(event) 
    print("handle inventory increase from" .. event.target) 
end 

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

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

您可以分割運行時dispatchEvent得到你想要的對象,以對象的通信。

+0

Tks - 從資源使用的角度來看,運行時選項是否被視爲重負? – Greg

+0

不,我不這麼認爲,這個事件調度模式甚至在Corona之外使用得很好。 – aaronjbaptiste

相關問題