Corona简单eventListener

时间:2013-02-21 11:34:05

标签: mobile lua corona

我无法弄清楚为什么我的按钮在按下时不会改变外观,任何人都可以告诉我以下代码段是否有问题。我正在使用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

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

2 个答案:

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