从 lua 中的 table 创建多个按钮(Corona sdk)

create multiple buttons from table in lua ( Corona sdk )

我有一个 table 看起来像这样:

table = 
{
{
    id = 1,
    name = 'john',
    png = 'john.png',
    descr = "..."
},
{
    id = 2,
    name = 'sam',
    png = "sam.png",
    descr = "..."
}
...
}

我可以用什么函数来显示每张图片并制作按钮

这样当我点击他们的图片时我可以打开他们的信息。

这就是我卡住的地方:

local buttons =  display.newGroup()
local xpos = -20
local ypos = 0
local e = -1


function addpicture ()
    for i=1, #table do
        xpos = (xpos + 100) % 300
        e = e + 1
        ypos = math.modf((e)*1/3) * 100 + 100
        local c = display.newImage( table[i].name, system.TemporaryDirectory, xpos, ypos)
        c:scale( 0.4, 0.4 )
        c.name = table[i].tvname
        buttons:insert(c)
    end
end

function buttons:touch( event )
    if event.phase == "began" then
        print(self, event.id)   
    end
end
buttons:addEventListener('touch', buttons)
addpicture()

如何识别触摸了哪张图片以返回到人物信息?

我通过在循环中添加侦听器解决了我的问题:

function addpicture ()
    for i=1, #table do
       xpos = (xpos + 100) % 300
       e = e + 1
       ypos = math.modf((e)*1/3) * 100 + 100
       local c = display.newImage( table[i].name, system.TemporaryDirectory, xpos, ypos)
       c:scale( 0.4, 0.4 )
       c.name = table[i].tvname
       buttons:insert(c)
       function c:touch( event )
         if event.phase == "began" then
            print(self, event.id)   
         end
       end
       c:addEventListener('touch', c)
    end
end
addpicture()