OK, this is a unique scenario but certainly possible. 
I would definitely abstain from putting both a “tap” AND “touch” listener on object A. This is redundant and might create problems. Anyway, if you need object A to have both tap and “drag” behavior, you need a touch listener for that.
What I would do is this:
- Object A has a boolean flag “isTap” or something.
- On the “began” phase of this touch, you set “isTap = true”
- On the “moved” phase of this object, you set “isTap = false”… this basically tells Corona, it’s no longer a TAP because the user moved/dragged, and by definition a TAP is a down/up touch in the *same* location on the screen.
- The “moved” phase could also be used for your “drag” functionality on object A
- On the “ended” phase of object A, you check if “isTap” is true or not. If TRUE, then you know it was a tap motion (although not technically a tap, just a touch listener behaving like a tap!).
Objects B,C,D, etc. can just have tap listeners; no need to do complex touch sensing on these.
Additionally, an overlay screen sensor will perform the “cancel all” functionality that you need. Just be sure to place it BEHIND the other objects, and include “return true” in the touch listener function of object A, so the touch doesn’t transmit *through* this object to the screen sensing rectangle.
Maybe this all seems like overkill, but give it a try and see how it goes.
Brent Sorrentino [import]uid: 9747 topic_id: 26919 reply_id: 109391[/import]