Corona简单的事件监听器

我无法弄清楚为什么当按下按钮时按钮外观不会更改,有人可以告诉我以下代码是否有问题。我正在使用Corona SDK。

这是完整的main.lua,如果我删除事件侦听器,则按钮交换有效。

display.setStatusBar(display.HiddenStatusBar);

local textObj = display.newRetinaText(“单击并查看发生了什么!”,40,40nil,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 toucheife.phase ==“began”)then
        textObj.text =“已单击!”;
        textObjsetTextColor(255,255,255);
    elseife.phase ==“ended”)then
        textObj.text =“已释放!”;
        textObjsetTextColor(255,0,0);
    end
end

现在我只能看到文本,而不是按钮!

点赞
用户1356130
用户1356130

我已经测试了你的代码,并且当点击时按钮会改变。我能想到的唯一原因就是 ButtonClicked.png 文件缺失。检查控制台(名为 Corona 模拟器输出)是否有任何错误。

此外,确保以下要点: 确保正在运行的是你正在编辑的相同的主要 lua 文件。

编辑后:

我相信你正在使用以下语句覆盖默认按钮行为

button:addEventListener("touch", button);

尝试使用构造函数参数 onPress

local button = widget.newButton{
    default = "Button.png",
    over = "ButtonClicked.png",
    onPress = touch
}
2013-02-21 15:03:13
用户2040431
用户2040431

我解决了!这是我是如何做的。

local button = widget.newButton{
default = "Button.png",
over = "ButtonClicked.png",

}
button.x = display.contentCenterX;
button.y = display.contentCenterY+200;

function button:tap( e )
-- 当事件发生时,做你想做的
end

button:addEventListener( "tap", button );
2013-02-22 09:32:21