从一个必需的lua文件改变事物,corona SDK

当我需要一个文件1时,我可以将值、数据或对象导出到文件2中,但文件2无法导出到文件1中

(用“文件”表示一个lua文件,例如Scene1.lua,Data.lua)

如何从文件2导出到文件1,反之亦然?

示例代码

Data.lua(文件1)

--data.lua

local M = {}

local money = 500
local moneyText = display.newText(“Money:” .. money,

显示。contentCenterX,显示。contentCenterY,

“calibri”,50)

M.moneyText = moneyText
M.moneyData = money

return M

file2

 --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)

点赞
用户2858170
用户2858170
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 指的是 M 表格。

local money = 500
M.moneyData = money

只是创建了一个 money 的副本并将其存储在 M 中。因此更改 M.moneyData 不会影响 money。因此更改 Data.moneyData 也不会影响 money

除此之外,下面这段代码:

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

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

2017-11-16 08:05:49