Hi All,
I am unable to pass a variable into my listener function for a UI button. I'm trying to process the touch events from multiple buttons with the same listener function.
Here's my code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | local onSitBtnTouch = function(event) if event.phase == 'release' then audio.play( tapSound ) print("event.target.pos "..event.target.pos) end end local sitBtn = ui.newButton{ defaultSrc = "images/sit_button.png", defaultX = 109, defaultY = 49, overSrc = "images/sit_button_over.png", overX = 109, overY = 49, onEvent = onSitBtnTouch } sitBtn:setReferencePoint(display.TopLeftReferencePoint) playerInfoGroups[curPos]:insert(sitBtn) sitBtn.x = 0 sitBtn.y = 0 sitBtn.alpha = 1 sitBtn.pos = curPos |
After posting this message I took a look at ui.lua. It turns out that the event listener for the ui button is in ui.lua. This function does not pass the event.target to your own onEvent listener. I added the following to ui.lua to pass on the event.target. It's around line 105.
1 2 3 4 5 | buttonEvent.phase = "release" -- Added by Nathan Tran buttonEvent.target = event.target -- Done adding result = onEvent( buttonEvent ) |
views:1664 update:2011/10/3 8:06:12