【问题标题】:Attempt to index upvalue which is a nil value尝试索引为 nil 值的 upvalue
【发布时间】:2014-03-14 16:03:00
【问题描述】:

总是出现错误“尝试索引 upvalue 'askUser'(a nil value)”,我必须在评论中声明才能运行应用程序,我该如何解决?

function restartLvl()  
        for i = 1, #balloonTexts do
        display.remove(balloonTexts[i])
        print ("restart level")
    end
    score.text = '0'
    ballRemain.text = '3'
    balloonText = {}
    createBalloons(1, 3)
    if (askUser.isVisible == true) then --this is where the error occured
    askUser.isVisible = false
    end
    if (yesBtn.isVisible == true) then
    yesBtn.isVisible = false
    end
    if (noBtn.isVisible == true) then
    noBtn.isVisible = false
    end

    print("time from start: ", (system.getTimer()-gameTime))
    print('send mail')
    sendMail()
    restartBtn:removeEventListener('tap', restartLvl)

end

【问题讨论】:

  • 您能否显示创建askUser 的代码(如果存在,则删除)。

标签: lua coronasdk


【解决方案1】:

消息告诉您askUser 是在restartLvl 外部定义的局部变量,而askUser 为nil,因此无法被索引。

你必须找出为什么 askUser 是 nil 而你没想到它。

【讨论】:

    【解决方案2】:

    你需要给 askUser.isVisible 一个值。 示例:

    askUser = blablabla
    askUser.x = blablabla
    aksUser.y = bablabla
    
    askUser.isVisible = false
    
    group:insert(askUser)
    

    PS:不知道有一个 isVisible var :P 我一直用askUser.alpha = 0

    【讨论】:

      【解决方案3】:

      在从视图中删除对象之前检查 nil

      例如

       local try    --object on which you are working
          if(try==nil)then
             --do nothing
         else
            --do here what u want to do
         end
      

      我也遇到了同样的问题,就我而言,这是代码工作。

      【讨论】:

        猜你喜欢
        • 2019-10-10
        • 1970-01-01
        • 2019-10-16
        • 2017-08-10
        • 1970-01-01
        • 2017-04-22
        • 2010-09-16
        • 1970-01-01
        • 2016-05-09
        相关资源
        最近更新 更多