滚动效果无法正常工作

Posted

技术标签:

【中文标题】滚动效果无法正常工作【英文标题】:Scroll effect isn't working correctly 【发布时间】:2018-08-09 12:45:50 【问题描述】:

我在 ROBLOX 中制作迷你游戏已经有一段时间了,我的游戏中的一件事是在选择游戏时出现滚动效果。你可以看到我在说什么here。同样在这个 gif 中,你可以看到我的问题。效果从下到上滚动。它应该从上到下。

我真的不明白它为什么会这样,所以我不确定该怎么做。

这是负责效果的代码:

for i, v in pairs(P:GetChildren()) do
    local ll
    local lastpicked        
    local t = P:GetChildren()
    local menuItems = #t -- number of menu items
    local repeats = 1 -- Repeated
    for R = math.random(65,95) + math.random(menuItems), 1, -1 do
        ll = t[repeats].SurfaceGui.TextLabel
        local lastbcolor = ll.BackgroundColor3
        ll.BackgroundColor3 = BrickColor.Yellow().Color
        wait( R^-.7*.7 ) -- 
        ll.BackgroundColor3 = lastbcolor
        repeats = repeats % menuItems + 1
    end
    ll = t[repeats].SurfaceGui.TextLabel
    for R = 1, 5 do
        local lastbcolor = ll.BackgroundColor3
        ll.BackgroundColor3 = BrickColor.new("Bright green").Color
        wait( .3 )
        ll.BackgroundColor3 = lastbcolor
        lastpicked = ll
        map = maps:FindFirstChild(ll.Text):Clone()
        wait( .3 )
    end
    break
end

【问题讨论】:

您在列表中从元素 1 循环到 #t,因此您的菜单项很可能只是以这种方式排序。没有看到你的菜单实现就无法回答这个问题。 菜单的顺序是正确的。我已经确定了这一点。顶部菜单项位于列表顶部,并且在资源管理器层次结构的顶部以及其余菜单项。 【参考方案1】:

线

for R = math.random(65,95) + math.random(menuItems), 1, -1 do

让你倒着看它们。给定代码

for R = a, b, c do

aR的起始值,bR的结束值,c是增量。你现在拥有它的方式是让它从最后一个值变为第一个值。尝试将其更改为

for 1, R = math.random(65,95) + math.random(menuItems), 1 do

这行得通吗?

注意:您可以通过省略末尾的 , 1 来简化该代码行:

for 1, R = math.random(65,95) + math.random(menuItems) do

您可以这样做,因为如果您省略 c,那么它的隐含值为 1。

【讨论】:

以上是关于滚动效果无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

反应:微调效果正在取消我的滚动效果

html5 视觉差滚动效果怎么实现

ViewPager pageSelected无法正常工作

在带有 RecyclerView 的 NestedScrollView 中无法正确显示过度滚动效果

基于Vue实现商城详情页“视差滚动”效果

vue 刚加载的菜单无法渲染选中效果