2016-03-28 2 views
0

Я спросил это вчера, но я думаю, что я не очень хорошо объяснял. Во всяком случае, мне действительно нужна помощь в этом ...Сложенные кнопки

У меня есть 2 newImageRect кнопок, которые я добавил при прослушивании прослушивателя событий. Одна кнопка находится поверх другой кнопки, и когда я нажимаю ту кнопку, которая находится сверху, я также выбираю одну из них ниже.

Я хочу сделать это: Когда я нажимаю на кнопку сверху, запускается только эта кнопка, но когда я нажимаю на кнопку ниже, но не нажимаю на нее выше, запускается только кнопка внизу. Таким образом, ВСЕГДА только одна кнопка нажата, а не две сразу.

+0

Вы оба в обоих случаях нажимаете на обе кнопки (эти два полностью перекрываются)? – Amir

+0

Нет, на самом деле одна маленькая кнопка поверх другой большой кнопки (на самом деле это кнопка помощи в углу большой кнопки). – FICHEKK

+0

http://stackoverflow.com/questions/36238510/how-to-give-priority-to-button/36298693#36298693 все, что вам нужно сделать, вернуть true после нажатия верхней кнопки ... – meisenman

ответ

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- На верхних кнопках в конце функции, возвращаемой кнопка включает «возвращает истину». Они говорят, что это останавливает объект ниже верхнего, получающего событие касания. Я с трудом использовал это и не могу работать.

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 
+0

Спасибо, человек, я получил идея из приведенного ниже кода работает отлично! – FICHEKK

Смежные вопросы