获得一个按钮的引用?

我正在使用 Lua + Corona 开发一个应用程序。作为一个完全的初学者,我已经设法拼凑出一个小脚本来制作一个旋转木马,但现在我有一个问题。

如果您查看代码,您会发现我有两个按钮,一个后退按钮和一个前进按钮。这些按钮是用来滑动图像用的。所以,假设您到了旋转木马的尽头。脚本会确保它不会超过已经存在的末尾,但是我怎么能访问按钮并将其 alpha 设置为零或淡化呢?它是线性的,所以我不能仅仅将按钮放在它的事件函数上面,以便事件函数可以引用按钮... 有办法将参考传递给事件函数吗?

原文链接 https://stackoverflow.com/questions/6063060

点赞
stackoverflow用户394012
stackoverflow用户394012

你可以在函数上面创建/定义按钮,并在下面附加EventListener,对吧?如果不行,我就不是很理解问题了。

2011-05-19 19:36:03
stackoverflow用户5420
stackoverflow用户5420

你可以像这样在文件顶部声明事件处理程序函数:

local forwardButtonPress
local backButtonPress

然后创建你的按钮并附加事件处理程序(这是你复制并粘贴的代码):

local fwbutton = display.newImage("buttonArrow.png")
fwbutton.x = 260
fwbutton.y = 120
fwbutton:addEventListener("tap", forwardButtonPress )

local bkbutton = display.newImage("buttonBackArrow.png")
bkbutton.x = 60
bkbutton.y = 120
bkbutton:addEventListener("tap", backButtonPress )

添加一个函数来管理当任一按钮被点击时设置按钮的外观:

local function setButtons()
    if carosel.getCurImage() < #myImages then
        fwbutton.alpha = 1.0
    else
        fwbutton.alpha = 0.5
    end

    if carosel.getCurImage() > 1 then
        bkbutton.alpha = 1.0
    else
        bkbutton.alpha = 0.5
    end
end

现在,你可以编写函数实现,并能够通过 setButtons 函数处理这些按钮:

forwardButtonPressed = function()
    if carousel.getCurImage() < #myImages then
        carousel.slideToImage(carousel.getCurImage() + 1)
    end
    setButtons()
end

backButtonPress = function()
    if carousel.getCurImage() > 1 then
        carousel.slideToImage(carousel.getCurImage() - 1)
    end
    setButtons()
end

免责声明: 我现在无法进行测试,因此可能会出现某些语法错误,但按照这种方式组织代码,对你要做的事情是管用的。

2011-05-19 19:52:59