I have a table of objects that I am populating at runtime like this:
for i = 1, #boaradLetters do letterImgTbl[i] = display.newImage( "images/letters/" .. letter .. ".png" ) letterImgTbl[i].height = 100 letterImgTbl[i].width = 100 letterImgTbl[i]:addEventListener( "touch", letterMoveListener )
Everything is working as expected until I want to detach the even listener above in my collusion event like follows, it’s being detached from every single object in my letterImgTbl table, not just the one that was in collusion:
local function onCollision( event ) local obj1 = event.object1 local obj2 = event.object2 print("collision between " .. obj1.type .. " and " .. obj2.type) if ( event.phase == "began" ) then if obj1.type == "placeholder" then if obj1.letter == obj2.letter then obj1:removeSelf() obj1 = nil timer.performWithDelay(1, function() physics.removeBody( obj2 ) obj2:removeEventListener("touch", letterMoveListener) transition.to( obj2, { time=200, x=100, y=100 } ) obj2:toFront() end, 1) end end end end
The even touch listener is declared like this:
function letterMoveListener( event ) local self = event.target ...
Why is that? Please help.
