I have set a touch event listener on the scene parent group and that is performing much more consistently. I am using the code out of the drag/drop sample code folder to handle touches.
I am able to get the simulator to crash pretty regularly when trying to handle touches directly on the object with all the layers enabled so I am wondering if the structure is just too complicated. (a group with a shape and text that is masked in another group with another image on top)
local function onTouch( event )
local t = event.target
-- Print info about the event. For actual production code, you should
-- not call this function because it wastes CPU resources.
printTouch(event)
local phase = event.phase
if "began" == phase then
-- Make target the top-most object
local parent = t.parent
parent:insert( t )
display.getCurrentStage():setFocus( t, event.id )
-- Spurious events can be sent to the target, e.g. the user presses
-- elsewhere on the screen and then moves the finger over the target.
-- To prevent this, we add this flag. Only when it's true will "move"
-- events be sent to the target.
t.isFocus = true
-- Store initial position
t.x0 = event.x - t.x
t.y0 = event.y - t.y
elseif t.isFocus then
if "moved" == phase then
-- Make object move (we subtract t.x0,t.y0 so that moves are
-- relative to initial grab point, rather than object "snapping").
t.x = event.x - t.x0
t.y = event.y - t.y0
elseif "ended" == phase or "cancelled" == phase then
display.getCurrentStage():setFocus( t, nil )
t.isFocus = false
end
end
-- Important to return true. This tells the system that the event
-- should not be propagated to listeners of any objects underneath.
return true
end
[import]uid: 102112 topic_id: 18876 reply_id: 72727[/import]