更改所需的 lua 文件,corona sdk

change things from a required lua file, corona sdk

当我需要一个file1时,我可以将值、数据或对象导出到file2,但是file2不能导出到file1

("file" 我指的是 lua 文件,例如,Scene1.lua、Data.lua)

如何从 file2 导出到 file1,反之亦然?

示例代码

Data.lua (文件 1)

--data.lua

local M = {}

local money = 500
local moneyText = display.newText("Money: " .. money, 
display.contentCenterX, display.contentCenterY, "calibri", 50)

M.moneyText = moneyText
M.moneyData = money

return M

文件 2

 --file2.lua

local Data = require("data")

local moneyText2 = Data.moneyText
local moneyData = Data.moneyData

local function addSomeValue()
moneyData = moneyData + 1
end

timer.performWithDelay(1000, addSomeValue, 0)
local Data = require("data")

或多或少等同于

function chunkFromDataLua()

  local M = {}

  local money = 500
  local moneyText = display.newText("Money: " .. money, 
  display.contentCenterX, display.contentCenterY, "calibri", 50)

  M.moneyText = moneyText
  M.moneyData = money

  return M

end

local Data = chunkFromDataLua()

Data 现在指的是 table M

local money = 500
M.moneyData = money

只创建货币的副本并将其存储在 M 中。因此更改 M.moneyData 不会影响货币。因此改变Data.moneyData也不会影响金钱。

除此之外

local moneyText = display.newText("Money: " .. money, 
  display.contentCenterX, display.contentCenterY, "calibri", 50)

当时使用money的值创建一个带有静态文本的显示对象。因此,之后更改 money 的值不会更改文本显示的内容。您必须更改 Data.moneyText.text 才能做到这一点。