lua前端滚动容器练习制作面板
<pre><code>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 = {
= {scale = 0.4 , img = "res/ly/gdrq/000000.png"},
= {scale = 0.5 , img = "res/ly/gdrq/000001.png"},
= {scale = 0.6 , img = "res/ly/gdrq/000002.png"},
= {scale = 1.0 , img = "res/ly/gdrq/000003.png"},
= {scale = 0.6 , img = "res/ly/gdrq/000004.png"},
= {scale = 0.5 , img = "res/ly/gdrq/000005.png"},
= {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
</code></pre>
哈哈,看来你在练习前端滚动容器呢!这个旋转视图的代码写得不错,我来给你分析一下:
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]