2011-05-24 69 views
2

我對使用Corona/Lua分層圖像/按鈕有個疑問。如果我在另一個頂部創建一個按鈕然後單擊它,那麼兩個按鈕的事件都會被觸發。我如何防止這種情況?Corona/Lua中的不同圖層

感謝,埃利奧特博納維爾

編輯:這就是我創建的按鈕:

button1 = display.newImage("button1.png") 
button1:addEventListener("tap", Button1Call) 

button2 = display.newImage("button2.png") 
button2:addEventListener("tap", Button2Call) 

回答

5

從事件處理函數返回true。觸摸事件繼續在聽衆中傳播直至被處理;它在這裏解釋:

http://developer.anscamobile.com/content/events-and-listeners#Touch_Events

注意,事件偵聽器必須監聽相同的事件。換句話說,兩個聽衆都必須設置爲「touch」或「tap」。從字面上看,昨晚我被這個絆倒了;我有一個按鈕聽「觸摸」,另一個圖像頂部聽「輕敲」,並想知道爲什麼按鈕仍然接收事件。

+0

好的,謝謝,那就是訣竅。 :) – 2011-05-25 19:44:10

+0

謝謝@jhocking它確實對我有幫助,因爲我也面臨這個問題....太棒了! – 2016-09-07 17:41:06

1

使用return true在你處理,以防止進一步的事件傳播事件的事件處理程序。

因此,在您的示例中,button2將首先獲取事件,因爲它是最後創建的。如果您在Button2Callreturn true處理事件,則Button1Call根本看不到該事件。如果您return false,或完全忽略return聲明,Button1Call將獲得該事件,並可以決定是否處理它。