我正在Lua + Corona的应用程序上工作。作为一个完整的初学者,我已经成功地将一个小脚本拼凑成旋转木马,但现在我有了一个问题。
function forwardButtonPress()
if carousel.getCurImage() < #myImages then
carousel.slideToImage(carousel.getCurImage() + 1)
end
end
function backButtonPress()
if carousel.getCurImage() > 1 then
carousel.slideToImage(carousel.getCurImage() - 1)
end
end
--Here's where we do the actual initilization of the page.
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 )
如果查看代码,您会看到我有两个按钮,一个后退按钮和一个前进按钮。这些是用于滑动图像。所以,说你到了旋转木马的尽头。该脚本负责确保它不会超过结束,但如何访问该按钮以将alpha设置为零或淡化它?它是线性的,所以我不能把按钮放在它的事件函数上面,这样事件函数就可以引用按钮......有没有办法传递事件函数对按钮的引用?
答案 0 :(得分:1)
您可以在文件顶部转发声明事件处理函数:
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
免责声明:我现在无法对此进行测试,因此某处可能存在语法错误,但以这种方式组织代码将对您正在进行的操作起作用。
答案 1 :(得分:0)
您可以在函数上方创建/定义按钮,并在下面附加EventListener,不是吗?如果没有,我真的不明白这个问题。