コロナの新機能(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)
いずれかのボタンを押すと、次のエラーが 2 回出力されます。
Runtime error
attempt to call a nil value
stack traceback:
[C]: ?
手がかりはありますか?ありがとう、エマ。