更改所需的 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
才能做到这一点。
当我需要一个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
才能做到这一点。