我在屏幕上显示一个 png 图像,其中包含玩家可以点击的各种级别。我使用以下方法创建图像:
local levelsImage = display.newImage("assets/levelmap-levels.png", 0, 0, true)
然后我在每个级别的顶部重叠圆圈,如下所示(级别是一个包含每个级别的坐标和点击半径的表):
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
按如下方式附加点击事件处理程序
levelTapCircle:addEventListener("tap", levelTapped)
在 levelTapped 函数中,我只是将点击坐标打印到输出控制台以证明事件处理程序已被调用。
如果圆圈可见(即当 alpha>0 时),则引发事件并调用 levelTapped 函数。但是,如果我将 alpha 值更改为 0 以隐藏圆圈,则不会调用点击事件。
levelTapCircle.alpha=0
以下内容也可用于隐藏圆圈,但也会导致不调用点击事件处理程序:
levelTapCircle.isVisible = false
我的问题是:
是否可以从隐藏的 displayObjects(在这种情况下为圆圈)接收点击事件?如果没有,我怎样才能从图像上的特定圆形区域接收点击事件,但不实际显示圆圈?