ScrollView不起作用 - corona,lua

时间:2015-08-12 19:22:02

标签: lua scrollview corona

我试图将对象添加到ScrollView,这就是发生的事情:

  

错误:表格预期。如果这是一个函数调用,你可能已经使用了'。'而不是':

那是什么?

代码: 这段代码有效:

    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

它很有效......

3 个答案:

答案 0 :(得分:2)

你可能正在调用像object.method()这样的方法而不是object:method() 不同之处在于:语法自动使用 this 作为对调用者对象的引用。语法必须明确键入第一个参数

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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