Lua中从数组表中向对象添加图片

我正在使用Cheat Engine Lua脚本创建8个图像,并且我想从一个数组表中向这些图像添加一些图片。

the_famous = {
{photo = "AlbertEinstein.jpg", nickName = "einstein", actorName = "阿尔伯特·爱因斯坦", profession = "物理学家", creation = "相对论", nationality = "德国", life = "1879年3月14日-1955年4月18日"},
{photo = "Mozart.jpg", nickName = "mozart", actorName = "沃尔夫冈·阿马德乌斯·莫扎特", profession = "古典音乐作曲家", creation = "交响曲第40号", nationality = "奥地利", life = "1756年1月27日-1791年12月5日"},
{photo = "Guevara.jpg", nickName = "guevara", actorName = "切·格瓦拉", profession = "革命家", creation = "古巴革命", nationality = "古巴,阿根廷 ", life = "1928年6月14日-1967年10月9日"},
{photo = "BruceLee.jpg", nickName = "bruce lee", actorName = "李小龙", profession = "武术家", creation = "MMA之父", nationality = "香港, 美国", life = "1940年11月27日-1973年7月20日"},
{photo = "Marilyn.jpg", nickName = "marilyn monroe", actorName = "玛丽莲·梦露", profession = "艺术家", creation = "最著名的性感象征", nationality = "美国", life = "1926年6月1日-1962年8月5日"}}

    function start()
     if #the_famous ~= 0 then
     the_famous.ItemIndex = 0
     local idx = the_famous.ItemIndex
     for i = 1, 8 do
         local idx = tableTemp.ItemIndex
         local img = string.format('image1'..i)  -- 图像名称以'image11'至'image18'开头
         local pic = the_famous[i].photo

         img.Picture.loadFromFile(path_to_images_stored..tostring(pic))
         img.Hint = the_famous[i].nickname

         idx = idx + 1
     end
     end
    end

但是上面的函数无法正常工作。我该如何正确地做呢?

点赞
用户3670853
用户3670853

已解决

我已经更改了我的脚本:

local cleft = 20
local ctop = 20

function getCategory(sender)

 local cat = sender.Name

 if cat == 'btnFamous' then
    while #tableTemp ~= 0 do rawset(tableTemp, #tableTemp, nil) end
    tableTemp = {}
    for z=1, #the_famous do tableTemp[z] = the_famous[z] end
 else
   return nil
 end

 for i = 1, 24 do
     local newImg = createImage(mPanel)
     newImg.width = 90
     newImg.height = 90
     newImg.top = ctop
     newImg.left = cleft
     newImg.Stretch = true
     newImg.Picture.loadFromFile(famous_img..tostring(tableTemp[i].photo))
     newImg.showHint = true
     newImg.Hint = tostring(tableTemp[i].nickName)
     newImg.Name = 'pic00'..i
     cleft = cleft + 100

     if i == 8 or i == 16 then
        cleft = 20
        ctop = ctop + 100
     end

   newImg.OnMouseEnter = function()
   hglight.visible=true
   hglight.setPosition(newImg.Left-10, newImg.Top-10)
   end

   newImg.OnMouseLeave = function()
   hglight.visible=false
   hglight.setPosition(newImg.Left-10, newImg.Top-10)
   end

 end
end

一切正常。

2020-06-13 12:14:34