如何访问模块中声明的变量?

时间:2015-02-01 20:13:00

标签: ios module lua corona

在我的game.lua文件中我有:

local sprites = require("sprites.lua")

sprites.lua包含

local iceberg = display.newImage("iceberg.png")
iceberg.x = _W/2
iceberg.y = _H/2
iceberg.alpha = 1

现在,我想设置" iceberg.alpha"从#34; game.lua"到0,但如果我尝试,Corona返回"尝试索引全球冰山(零值)"

当然,sprites.lua包含

module(..., package.seeall)

我做错了什么?

我甚至尝试使用sprites.iceberg.alpha = 0,但显然它不起作用。

2 个答案:

答案 0 :(得分:1)

请勿使用module。只需返回iceberg中的sprites.lua值或您要访问的其他任何值:

-- sprites.lua
local iceberg = display.newImage("iceberg.png")
iceberg.x = _W/2
iceberg.y = _H/2
iceberg.alpha = 1
return iceberg

-- game.lua
local iceberg = require("sprites.lua")
-- iceberg.alpha is available here

Lua modules教程提供了有关其工作原理和更多参考资料的一些其他信息。

答案 1 :(得分:0)

确保您的变量不是本地变量。看看这个工作正常的例子。

如果您使用

,请在以下代码中说明
local star = display.newLine( 200, 90, 227, 165 )

在test.lua中,您将收到错误消息。

这是“main.lua”。尝试更改Alpha值。

require "test"
star.alpha=0.5

这是“test.lua”。

star = display.newLine( 200, 90, 227, 165 )
star.anchorX = 0.2257
star.anchorY = 0.5

star.x = display.contentCenterX 
star.y = display.contentCenterY
local function rotate(x)
 timer.performWithDelay(1, function() star.rotation = star.rotation + 5;end, 15)
end
rotate()