2016-09-18 4 views
1

Я новичок в короне sdk и lua. Так что я работал над программой и столкнулся со следующей проблемой:onPress = display.remove не работает на Corona SDK

local buttonSmall = widget.newButton 
{ 
id = "smallBtn", 
defaultFile = "buttonBlueSmall.png", 
overFile = "buttonBlueSmallOver.png", 
label = " Next", 
fontSize = 12, 
emboss = true, 
onPress = display.remove(button1) 

} 

Проблема заключается в том, что я хочу кнопку 1, чтобы удалить, когда я нажимаю «buttonSmall», но всякий раз, когда я запустить свой код в SDK он не показывает без щелчка на кнопке «Смайл»

ответ

3

Проблема в том, что вы не назначаете функцию слушателю onPress. Вы выполняете display.remove(button1) и присваиваете то, что возвращается на onPress, которое равно nil. Вам нужно обернуть вызов функции, например, так:

onPress = function() 
    display.remove(button1) 
end, 

или как это:

local function deleteButton1() 
    display.remove(button1) 
end 

... 

onPress = deleteButton1, 

Так вот почему ваш button1 никогда не показывает, вы уже удалили его, вызвав display.remove(). Помните, что виджет ожидает, что функция назначена ему на onPress, и вы можете сделать это, просто указав имя функции или создав функцию прямо там.

+0

Спасибо это сработало! –

+0

Отлично! Рассмотрите маркировку как правильный ответ. Рад помочь! –

+0

но чувак, если я хочу удалить все кнопки, нажав кнопку ButtonSmall? –

0

Вы также можете использовать встроенные функции, как показано ниже:

local buttonSmall = widget.newButton 
{ 

id = "smallBtn", 

defaultFile = "buttonBlueSmall.png", 

overFile = "buttonBlueSmallOver.png", 

label = " Next", 

fontSize = 12, 

emboss = true, 

onPress = function()display.remove(button1)end 

} 
+0

Мой ответ уже рассмотрел встроенную функцию. –