我有一个数据库SQLite3,它存储了一些文本,例如2个字符之间的对话框。我还有一个弹出窗口,其中显示了演讲。
现在,我可以从数据库中提取文本但是我的主要问题是:如何在循环函数中显示每一行?像幻灯片一样,文本必须显示在名为myMessage.text
这是我的代码:
function displaySpeech(event)
for i=1,4 do
local result = "SELECT speech FROM speeches WHERE id="..i..""
for col1 in db:urows( result ) do
myMessage.text=col1
print(i)
end
i=i+1
end
end
在侦听器中调用该函数,如下所示:
popup:addEventListener( 'tap', displaySpeech)
一旦我点击弹出窗口,该功能必须显示所有"线"从1到4,进入message.text,每个文本都有延迟。现在,我的函数(displaySpeech())无法递增 - print(i)只显示第一行。
我知道这个主题可能是“巨大的”,所以首先:这是一个好方法吗?
也许,我需要一些timer.performWithDelay()
功能?
答案 0 :(得分:0)
这是我找到的解决方案:
num = 1
function displaySpeech(character)
displaySpeech_get(""..num.."", character)
num = num + 1
end
---------------------------------------------------------------------------
function displaySpeech_get(number, character)
local varchar = character
for row in db:nrows("SELECT * FROM speeches WHERE character='"..character.."' LIMIT "..tostring(number)..",1") do
myMessage.text=row.speech
end
end