尝试索引全局变量'city1'(一个空值)

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

但是Corona出错了:

game.lua:65: attempt to index globall 'city1' (a nil value)
点赞
用户5090867
用户5090867

这很简单。你定义了 city1 作为局部变量。在函数 scene:enterScene(event) 中它并不存在。

2015-07-09 13:07:56
用户1870706
用户1870706

你很可能出现了范围问题。首先,你应该声明局部变量。如果你没声明为局部变量,就会创建一个全局变量,这只会导致更多的麻烦。相反,你应该学习编程中的变量范围。在故事板和作曲家中,你必须在更高的级别声明想要在多个函数中访问的变量。这个教程讲解了所有的内容:

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

2015-07-12 04:50:50