我无法弄清楚为什么我的按钮在按下时不会改变外观,任何人都可以告诉我以下代码段是否有问题。我正在使用Corona SDK
这是我完整的main.lua,如果我删除了buttonwap的事件监听器。
display.setStatusBar(display.HiddenStatusBar);
local textObj = display.newRetinaText("Click and see what happens!", 40, 40, nil, 0)
textObj:setTextColor(255,0,0);
local widget = require "widget";
local button = widget.newButton{
default = "Button.png",
over = "ButtonClicked.png",
onPress = button.touch;
}
button.x = display.contentCenterX;
button.y = display.contentCenterY+200;
local function touch(e)
if(e.phase == "began")then
textObj.text = "Clicked!";
textObj:setTextColor(255,255,255);
elseif(e.phase == "ended") then
textObj.text = "Released!";
textObj:setTextColor(255,0,0);
end
end
现在我只能看到文字,而不是按钮!
答案 0 :(得分:0)
我已经测试了您的代码,点击时按钮也在变化。我能想到的唯一原因是缺少ButtonClicked.png。检查控制台(名为Corona Simulator Output的窗口)是否有任何错误。
另外,覆盖基地: 确保您正在运行与您正在编辑的相同的main.lua。
编辑后:
我相信你用
覆盖默认按钮行为button:addEventListener("touch", button);
尝试使用构造函数参数 onPress 。
local button = widget.newButton{
default = "Button.png",
over = "ButtonClicked.png",
onPress = touch
}
答案 1 :(得分:0)
好的,我解决了!这是我如何做到的。
local button = widget.newButton{
default = "Button.png",
over = "ButtonClicked.png",
}
button.x = display.contentCenterX;
button.y = display.contentCenterY+200;
function button:tap( e )
-- Do what you want to do when event occurs
end
button:addEventListener( "tap", button );