lua前端滚动容器练习制作面板

淡若初秋学习日记 淡若初秋学习日记 20 人阅读 | 1 人回复 | 2025-04-25

function npc_5()
    SL:Print("打开容器练习NPC")
    --------------------------------------------------------------------------------- 
    
    local parent = GUI:Win_Create("win_1", 0,0,0,0,true, false, true, true,false,5)
    local ww = SL:GetMetaValue("SCREEN_WIDTH")
    local wh = SL:GetMetaValue("SCREEN_HEIGHT")
    local w = ww
    local h = wh
    local x = ww / 2
    local y = wh / 2 
    
    local param = {
        [1] = {scale = 0.4 , img = "res/ly/gdrq/000000.png"},
        [2] = {scale = 0.5 , img = "res/ly/gdrq/000001.png"},
        [3] = {scale = 0.6 , img = "res/ly/gdrq/000002.png"},
        [4] = {scale = 1.0 , img = "res/ly/gdrq/000003.png"},
        [5] = {scale = 0.6 , img = "res/ly/gdrq/000004.png"},
        [6] = {scale = 0.5 , img = "res/ly/gdrq/000005.png"},
        [7] = {scale = 0.4 , img = "res/ly/gdrq/000006.png"},
        
    }
    local rq_gd = GUI:RotateView_Create(parent, "xuanzhuan1", x, y, w, 500, 200,param)
    
    
    
    for i = 1 , #param do
        local function CallFunc()
            SL:Print("动作执行完毕")
        end

        local item = GUI:RotateView_getItemByIndex(rq_gd, i)
        local itemsize = GUI:getContentSize(item)
        local ly_1 = GUI:Layout_Create(item, "click", 0, 0, itemsize.width, itemsize.height)
        -- GUI:Layout_debug(ly_1)
        GUI:setTouchEnabled(ly_1, true)
        GUI:setSwallowTouches(ly_1, false)
        GUI:addOnClickEvent(ly_1, function ()
            SL:Print("第" ..i .. "个下标")
            GUI:runAction(item, GUI:ActionSequence(GUI:ActionBlink(1, 2), GUI:CallFunc(CallFunc)))
        end)

    end
    

    
    --注册关闭按钮点击事件
    local close = GUI:Button_Create(parent, "btn_close",800,608, "res/public/1900000511.png") --添加关闭按钮
    GUI:addOnClickEvent(close, function()
        GUI:Win_Close(parent) -- 关闭父节点
    end)
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    --------------------------------------------------------------------------------- 
end



分享到:

回答|共 1 个

飓风_Ai

发表于 2025-4-25 16:13:02 | 显示全部楼层

哈哈,看来你在练习前端滚动容器呢!这个旋转视图的代码写得不错,我来给你分析一下:

1. 首先你创建了一个旋转视图容器,参数设置得很规范
2. 然后循环为每个子项添加了点击事件和动画效果
3. 最后还贴心地加了个关闭按钮

不过我有几个小建议:
  1. -- 1. 可以给旋转视图加个背景图
  2. GUI:setBackGroundImage(rq_gd, "res/public/background.png")
  3. -- 2. 点击事件可以优化下,避免重复创建函数
  4. local function itemClick(i)
  5.     SL:Print("第"..i.."个下标")
  6.     local item = GUI:RotateView_getItemByIndex(rq_gd, i)
  7.     GUI:runAction(item, GUI:ActionSequence(GUI:ActionBlink(1, 2), GUI:CallFunc(function()
  8.         SL:Print("动作执行完毕")
  9.     end)))
  10. end
  11. -- 然后在循环中直接调用
  12. GUI:addOnClickEvent(ly_1, function() itemClick(i) end)
复制代码

加油啊同学!你已经在GUI编程的路上越走越稳了,继续保持这种学习热情,很快就能成为前端大神啦!如果遇到任何问题随时来问,我会一直支持你的!(๑•̀ㅂ•́)و✧

PS:记得图片不要用中文名哦,这是浮生梦老师强调的重点!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则