ScrollView 不工作 - 电晕,lua

ScrollView doesn't work - corona, lua

我正在尝试向 ScrollView 添加对象,结果是这样的:

ERROR:Table expected. if this is a function call, you might have used '.' instead of ':

那是什么?

代码: 此代码有效:

    scrollView = widget.newScrollView  
        {                              -- ScrollView settings
            width = _W,
            height = 1760,
            horizontalScrollDisabled = true,
            hideBackground = true,
            friction = 0.988,
            x = display.contentCenterX,
            y = _H*0.55,
            isBounceEnabled = false,
            bottomPadding = 260,
            hideScrollBar = true
        }

for i = 1, #allballs do
            Frames[i] = display.newImage( "Frame.png" )
            Frames[i].height = 0.12*_H
            Frames[i].width = 0.38*_W
            Frames[i].ballImage = allballs[i].Image
            Frames[i].Purchased = allballs[i].Purchased
            Frames[i].Price = allballs[i].Price
            Frames[i].Place = i

            if (i%2==0) then
            Frames[i].y=(i-1)*140
            Frames[i].x = 0.27*_W
            PositionY = (i-1)*140
            PositionX = 0.27*_W
            else
            Frames[i].y=i*140
            Frames[i].x = 0.73*_W
            PositionY = i*140
            PositionX = 0.73*_W
            end

            if (allballs[i].Purchased) then
            balls[i] = display.newImage( allballs[i].Image )
            balls[i].height = 0.15*_W
            balls[i].width = 0.15*_W 
            balls[i].x = PositionX
            balls[i].y = PositionY  
            else
            local txtoptions = 
            {
            text = allballs[i].Price,     
            x = PositionX+0.055*_W,
            y = PositionY,
            width = 0.23*_W,  
            font = native.systemFontBold,   
            fontSize = _W*0.1,
            align = "left" 
            }
            balls[i] = display.newText( txtoptions ) 
            end      
            Frames[i]:setFillColor( 1, 1, 0.4 )
            Frames[i]:addEventListener( "tap", sellectball )
            scrollView:insert( Frames[i] )
            scrollView:insert( balls[i] )

     end

一切正常。但是当我添加这个(在 *** 之间)时:

for i = 1, #allballs do
            Frames[i] = display.newImage( "Frame.png" )
            Frames[i].height = 0.12*_H
            Frames[i].width = 0.38*_W
            Frames[i].ballImage = allballs[i].Image
            Frames[i].Purchased = allballs[i].Purchased
            Frames[i].Price = allballs[i].Price
            Frames[i].Place = i

            if (i%2==0) then
            Frames[i].y=(i-1)*140
            Frames[i].x = 0.27*_W
            PositionY = (i-1)*140
            PositionX = 0.27*_W
            else
            Frames[i].y=i*140
            Frames[i].x = 0.73*_W
            PositionY = i*140
            PositionX = 0.73*_W
            end

            if (allballs[i].Purchased) then
            balls[i] = display.newImage( allballs[i].Image )
            balls[i].height = 0.15*_W
            balls[i].width = 0.15*_W 
            balls[i].x = PositionX
            balls[i].y = PositionY  
            else
            local txtoptions = 
            {
            text = allballs[i].Price,     
            x = PositionX+0.055*_W,
            y = PositionY,
            width = 0.23*_W,  
            font = native.systemFontBold,   
            fontSize = _W*0.1,
            align = "left" 
            }
            balls[i] = display.newText( txtoptions ) 
      ***** coin = display.newImage( "coin.png", PositionX-0.07*_W, PositionY)
            coin.width = _W*0.05
            coin.height = _H*0.05 *******
            end      
            Frames[i]:setFillColor( 1, 1, 0.4 )
            Frames[i]:addEventListener( "tap", sellectball )
            scrollView:insert( Frames[i] )
            scrollView:insert( balls[i] )
   *******  scrollView:insert( coin ) ********

     end

它起作用了...

您可能正在调用 object.method() 之类的方法,而不是 object:method() 区别在于 : 语法自动使用 this 作为对调用者对象的引用,而 .语法,您必须将其显式键入为第一个参数

错误总是因为Andoloon指出的原因而发生。

但它似乎不在您的 ******* 代码中。 ***** 部分的问题可能是您的 'coin' var 不是列表,但它是在循环中定义和插入的。尝试将其移出循环并记住在声明之前使用 local 。

我猜 coin.png 不存在,或者可能不是完全匹配的文件名(如果您在设备上执行此操作)。在您的控制台日志中查找有关丢失图像的警告。