Я, вероятно, не использую правильные слова в названии, так как я новичок в lua, и это не совсем ОО, как я привык. Поэтому я буду использовать код, чтобы объяснить себя и то, что я пытаюсь.
У меня есть класс, который я определяю (упрощенно):
function newButton(params)
local button, text
function button:setText(newtext) ... end
return button
end
Я пытаюсь создать кнопку, которая изменит текст после нажатия. Поэтому я создаю его следующим образом (упрощенно):
local sound = false
local soundButton = Button.newButton{
text = "Sound off",
onEvent = function(event)
if sound then
sound = false; setText("Sound on")
else
sound = true; setText("Sound off")
end
end
}
Все хорошо, работает, за исключением того, что говорит, что я не могу вызвать setText attempt to call global 'setText' <a nil value>
Я пытался использовать soundButton:setText("")
, но это тоже не работает.
Есть ли образец, которому я могу следовать, чтобы достичь того, чего хочу?