尝试索引本地'开'(零值)

时间:2013-12-30 14:18:13

标签: lua corona helper

我不明白为什么这会给我一个错误。我开始编程所以它可能是如此令人尴尬。这是一个可重复使用的按钮让我很难过。在第12行,我尝试更改on alpha ii给出了错误。

local Button = {}
Button.new = function(params)
local btn = display.newGroup()

local offIMG = params and params.off or "off.png"
local onIMG = params and params.on or "on.png"

local off = display.newImageRect("offIMG", 64, 70)
local on = display.newImageRect("onIMG", 100, 100)
on.alpha = 0

btn:insert(off)
btn:insert(on)

btn.x = params and params.x or 0
btn.y = params and params.y or 0

function btn:touch(e)
    if(e.phase=="began")then
        on.alpha = 1
        display.getCurrentStage():setfocus(self)
        self.hasFocus = true
    elseif (self.hasFocus) then
        if(e.phase=="ended")then
            on.alpha = 0
            display.getCurrentStage():setfocus(self)
            setfocus(nil)
        end
    end
end

btn:addEventListener("touch",btn)

return btn

end

local button1= Button.new()
button1.x = display.contentWidth * 0.5
button1.y = display.contentHeight * 0.5

1 个答案:

答案 0 :(得分:4)

假设第12行你的意思是on.alpha = 0,这意味着问题在于前一行local on = display.newImageRect("onIMG", 100, 100)中的函数调用没有按预期返回值,而是返回nil。我怀疑是这种情况,因为你传递字符串"onIMG"作为第一个参数,而不是将变量onIMG作为第一个参数传递,因为它似乎是你想要的。

尝试local on = display.newImageRect(onIMG, 100, 100)以及上面offIMG行的类似更改,看看是否有帮助。