onPress = display.remove 在 Corona SDK 上无法工作

我是一个 corona sdk 和 lua 的初学者。因此,我在编写一个程序时遇到了以下问题:

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

}

问题在于,当我点击“buttonSmall”时,我想要删除“button1”,但无论何时我在 sdk 中启动我的代码,它都不会显示按钮甚至没有点击“buttonSmall”。

点赞
用户1381216
用户1381216

问题是您没有将函数分配给onPress监听器。您正在执行display.remove(button1)并将返回的内容分配给onPress,即为nil。您需要像这样封装函数调用:

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

或者像这样:

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

...

onPress = deleteButton1,

这就是为什么您的button1从未出现的原因,因为您已经通过调用display.remove()删除了它。请记住,widget期望在onPress上分配一个函数,您可以通过指定函数名称或直接构建函数来实现这一点。

2016-09-19 05:09:30
用户5816155
用户5816155

你也可以像下面一样使用内联函数:

local buttonSmall = widget.newButton
{

id = "smallBtn",

defaultFile = "buttonBlueSmall.png",

overFile = "buttonBlueSmallOver.png",

label = "下一步",

fontSize = 12,

emboss = true,

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

}
2016-11-07 06:17:33