我昨天问了这个问题,但我想我的解释并不是很好。无论如何,我真的需要帮助......
我有两个newImageRect
按钮,我在点击时添加了事件监听器。一个按钮位于另一个按钮的顶部,当我点击顶部的那个按钮时,我也点击下面的按钮。
我想这样做:当我点击顶部的按钮时,只触发该按钮,但是当我点击下面的按钮但没有点击上面的按钮时,只触发下面的按钮。因此,总是只点击一个按钮,而不是一次点击两个按钮。
答案 0 :(得分:1)
之前我遇到过这个问题,但不知何故,当我使用下面的代码时,我看不到问题的发生。不确定他们是否已经解决了这个问题但是在代码之后我给出了两个我主要使用的解决方案。
local widget = require( "widget" )
local function button1Press( event )
local alert = native.showAlert( "Corona", "BIG", { "OK"} )
print ("Big")
end
local function buttonHandler( event )
local alert = native.showAlert( "Corona", "Small", { "OK"} )
end
local button1 = widget.newButton
{
defaultFile = "buttonRed.png",
overFile = "buttonRedOver.png",
label = "Button 1 Label",
emboss = true,
onPress = button1Press,
}
local buttonArrow = widget.newButton
{
id = "arrow",
defaultFile = "buttonArrow.png",
overFile = "buttonArrowOver.png",
onPress = buttonHandler,
}
button1.x = 160; button1.y = 160
buttonArrow.x = 250; buttonArrow.y = 160
如果它不起作用:
1-在按钮返回的函数末尾的顶部按钮包括“return true”。他们说这会阻止接收触摸事件的顶部下方的物体。我很难使用它,可能无法正常工作。
2-如果以上情况不起作用。使用这个简单的工作。它只是检查按钮是否已被触摸。
lowerbutCheck = true
local function upperButton(event)
--your code
lowerbutChecked=false
end
local function lowerButton(event)
if lowerbutChecked then
--do your code
else
--do nothing
end
lowerbutChecked=true
end