Mobile Corona简单事件侦听器

Mobile Corona简单事件侦听器,mobile,lua,coronasdk,Mobile,Lua,Coronasdk,我不明白为什么我的按钮在按下时不会改变外观,有人能告诉我下面的代码片段是否有问题吗。我正在使用Corona SDK 这是我完整的main.lua,如果我删除了事件侦听器,按钮Swap就会工作 display.setStatusBar(display.HiddenStatusBar); local textObj = display.newRetinaText("Click and see what happens!", 40, 40, nil, 0) textObj:setTextColor(

我不明白为什么我的按钮在按下时不会改变外观,有人能告诉我下面的代码片段是否有问题吗。我正在使用Corona SDK

这是我完整的main.lua,如果我删除了事件侦听器,按钮Swap就会工作

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

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

我已经测试了您的代码,单击时按钮正在更改。我能想到的唯一原因是ButtonClicked.png不见了。检查控制台(名为Corona Simulator Output的窗口)是否存在任何错误

此外,还应涵盖以下基础: 确保运行的main.lua与正在编辑的相同

编辑后:

我相信您正在用

button:addEventListener("touch", button);
尝试使用构造函数参数onPress

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

好的,我解决了!我是这样做的

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 );

它是正确的main.lua,并且单击的按钮与该主文件位于同一文件夹中。。。奇怪的是,eventlistener是否覆盖了我的按钮定义?在这种情况下,我将如何解决它?感谢您的时间,鉴于我在科罗纳是一个完全的新手,我将再次编辑我的代码。它仍然无法再次工作。我应该在控制台中至少有一些错误。