【问题标题】:attempt to index globall 'city1' (a nil value)尝试索引全局“城市 1”(零值)
【发布时间】:2015-07-09 05:48:55
【问题描述】:

我的代码......

local physics = require"physics" ---- 
physics.start()
local storyboard = require("storyboard")
local scene = storyboard.newScene()

function scene:enterScene(event)
    city1.enterFrame= scrollCity
    Runtime:addEventListener("enterFrame",city1)

    city2.enterFrame= scrollCity
    Runtime:addEventListener("enterFrame",city2)

    city3.enterFrame= scrollCity
    Runtime:addEventListener("enterFrame",city3)

    city4.enterFrame= scrollCity
    Runtime:addEventListener("enterFrame",city4)

    Runtime:addEventListener("touch",touchScreen)
end

scene:addEventListener("enterScene",scene)
 return scene

但是电晕错误

game.lua:65: attempt to index globall 'city1' (a nil value)

【问题讨论】:

  • 您没有显示city1 的定义位置。
  • 本地 city1 = display.newImage("city1.png") city1:setReferencePoint(display.BottomLeftReferencePoint) city1.x=0 city1.y=320 city1.speed=1
  • 当我删除功能场景时:enterScene(event) 正常运行\

标签: lua coronasdk


【解决方案1】:

您很可能遇到范围问题。首先,您应该在本地声明内容。当你离开本地时,你会变成一个全局的,这会给你带来比它解决的更多的麻烦。相反,您应该了解编程中的范围。在 Storyboard 和 Composer 中,您必须在更高级别的多个函数中声明要访问的变量。本教程解释了一切:

https://coronalabs.com/blog/2015/06/16/tutorial-scope-for-beginners/

【讨论】:

    【解决方案2】:

    这很简单。您将 city1 定义为局部变量。在函数scene:enterScene(event) 中不存在。

    【讨论】:

      猜你喜欢
      • 2013-06-07
      • 2020-03-08
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 2017-01-10
      • 2015-02-18
      相关资源
      最近更新 更多