比方说
-我有一个按钮,可监听“ tap”事件,并指向执行某项功能的函数。
-我放置了一个覆盖按钮的ImageRact。一层以上。
当我单击按钮位于其上方区域上方的封面图像时,事件功能仍将执行。
如何避免这种情况?
例:
local function hidebg()
display.remove(logo3)
logo3=nil
end
local logo2= display.newImage("logo.png")
logo2.x=display.contentCenterX
logo2.y=280
logo2.width=200
logo2.height=74
logo2:addEventListener("tap", hidebg)
local cover =display.newImageRect("NEW GAME A.png", 480,320)
cover.x=display.contentCenterX/2
cover.y=display.contentCenterY/2
尽管“ logo2”被“ cover”图像覆盖,hidebg()函数仍然执行。
我知道我可以使按钮isVisible = false并解决问题,但是我在不同层的不同组中有数十个按钮,我想知道如何以一种聪明的方式做到这一点。也许以某种方式禁用整个组?我不知道。
最佳答案
您可以通过两种方法在项目中禁用该按钮。
1)只需如下创建cover
和return true
的侦听器:
function coverPressed()
return true;
end
cover:addEventListener("tap",coverPressed)
2)检查
cover
是否存在,然后将logo2
的侦听器删除为:logo2:removeEventListener("tap", hidebg)
保持编码............😃