OOP类中的运行时错误(电晕)

时间:2012-05-16 18:22:02

标签: corona

Corona的新手(来自Actionscript)并尝试通过一些OOP教程为我的应用程序创建可重用的模块。目前正在使用数字选择器,这似乎正在工作,但当我按下按钮时也会抛出错误。这是'numberPicker.lua'的代码:

local numberPicker = {}
local numberPicker_mt = { __index = numberPicker }  -- metatable
widget = require "widget"

-------------------------------------------------
-- PUBLIC FUNCTIONS
-------------------------------------------------

function numberPicker.new() -- constructor

local newNP = display.newGroup()
local value = 0

local function dec()
    print("dec")
    if value > 0 then
        value = value - 1
        valueText.text = value
    end
end

local function inc()
    print("inc")
    if value < 100 then
        value = value + 1
        valueText.text = value
    end
end

decrement = widget.newButton{
    default="gfx/dec_normal.png",
    over="gfx/dec_press.png",
    width=58, height=58,
    onRelease = dec
}

valueText = display.newText(value, 70, 10, native.systemFont, 40)
valueText:setTextColor(0, 0, 0)

increment = widget.newButton{
    default="gfx/inc_normal.png",
    over="gfx/inc_press.png",
    width=58, height=58,
    onRelease = inc
}

increment.x = 140

newNP:insert(decrement.view)
newNP:insert(valueText)
newNP:insert(increment.view)
return setmetatable( newNP, numberPicker_mt )
end

return numberPicker

用法:

local numberPicker = require( "numberPicker" )
local lengthPicker = numberPicker.new()
scrollView:insert(lengthPicker)

当我按下任一按钮时,我会出现以下错误两次打印出来:

Runtime error
attempt to call a nil value
stack traceback:
[C]: ?

有人提出任何线索吗? 谢谢, 艾玛。

1 个答案:

答案 0 :(得分:0)

“scrollView”变量未初始化。