堆叠按钮

我昨天问过这个问题,但是我想我没有解释清楚。无论如何,我真的需要帮助...

我有2个newImageRect按钮,我在点击时添加了事件监听器。其中一个按钮位于另一个按钮上面,当我点击上面的按钮时,我也点击了下面的按钮。

我想做到这一点:当我点击顶部按钮时,只有该按钮被触发,但是当我点击下面的按钮而不点击上面的按钮时,只有下面的按钮被触发。因此,始终只有一个按钮被点击,而不是同时两个按钮。

点赞
用户3041972
用户3041972

我之前遇到了这个问题,但是使用下面的代码后我并没有看到这个问题出现。不确定他们是否解决了这个问题,但是在代码后面,我给出了两种解决方案,其中一种是我主要使用的。

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
2016-03-29 05:10:33