I am displaying a single png image on screen which contains various levels that the player can tap on.
I create the image using:
local levelsImage = display.newImage("assets/levelmap-levels.png", 0, 0, true)
I then overlap circles on top of each level as follows (levels is a table containing coordinates and tap radius for each level):
for i,level in ipairs(levels) do
local levelTapCircle = display.newCircle(level.x, level.y, level.tapRadius)
levelTapCircle.level=level -- attach the level info to the object so we know which level was tapped
levelTapCircle.alpha=0.3
myGroup:insert(levelTapCircle)
end
Attach the tap event handler as follows
levelTapCircle:addEventListener("tap", levelTapped)
In the levelTapped function I simply print the tap coordinates to the output console to prove that the event handler was invoked.
If the circles are visible (i.e. when alpha>0), then the event is raised and the levelTapped function is called. However, if I change the alpha value to 0 in order to hide the circles, the tap event is not called.
levelTapCircle.alpha=0
The following can also be used to hide the circles, but it also results in the tap event handler not being invoked:
levelTapCircle.isVisible = false
My question is:
Is it possible to receive tap events from hidden displayObjects (circles in this case)?
If not, how can I receive tap events from specific circular areas on the image, but without actually displaying the circles?