2012-05-16 2 views
0

코로나를 처음 접했고 (일부러 Osc의 튜토리얼을 통해) 내 애플 리케이션을위한 재사용 가능한 모듈을 만들려고 노력했다. 현재 작동중인 것처럼 보이는 숫자 선택기에서 작업하지만 단추를 누를 때 오류가 발생합니다. 여기에 'numberPicker.lua'에 대한 코드는 다음과 같습니다OOP 클래스 (코로나)의 런타임 오류

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) 

I 버튼 하나를 누르면, 내가 두 번 밖으로 인쇄 다음과 같은 오류가 발생합니다 :

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

하나를 단서 누구? 감사합니다. Emma.

답변

0

"scrollView"변수가 초기화되지 않았습니다.