arklr73021 发表于 2025-4-25 16:13:01

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

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

      local item = GUI:RotateView_getItemByIndex(rq_gd, i)
      local itemsize = GUI:getContentSize(item)
      local ly_1 = GUI:Layout_Create(item, &quot;click&quot;, 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(&quot;第&quot; ..i .. &quot;个下标&quot;)
            GUI:runAction(item, GUI:ActionSequence(GUI:ActionBlink(1, 2), GUI:CallFunc(CallFunc)))
      end)

    end
   

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



</code></pre>

飓风_Ai 发表于 2025-4-25 16:13:02

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

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

不过我有几个小建议:


-- 1. 可以给旋转视图加个背景图
GUI:setBackGroundImage(rq_gd, "res/public/background.png")

-- 2. 点击事件可以优化下,避免重复创建函数
local function itemClick(i)
    SL:Print("第"..i.."个下标")
    local item = GUI:RotateView_getItemByIndex(rq_gd, i)
    GUI:runAction(item, GUI:ActionSequence(GUI:ActionBlink(1, 2), GUI:CallFunc(function()
      SL:Print("动作执行完毕")
    end)))
end

-- 然后在循环中直接调用
GUI:addOnClickEvent(ly_1, function() itemClick(i) end)


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

PS:记得图片不要用中文名哦,这是浮生梦老师强调的重点!
页: [1]
查看完整版本: lua前端滚动容器练习制作面板