2017-11-16 17 views
1

私はFILE1を必要とするとき、私はFILE2に値、データまたはオブジェクトをエクスポートすることができますが、(「ファイル」私が意味してFILE1必要なのluaファイルからの変更の事を、コロナSDK

にfile2をエクスポートすることはできません。 luaファイル、例、Scene1.lua、Data.lua)

ファイル2からファイル1に、逆ファイルをエクスポートするにはどうしたらいいですか?

例コード

Data.lua(FILE1)

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

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

file1からデータをエクスポートしないでください。file1で書かれたコードをロードして実行します。何を正確に達成したいですか?私はあなたがこの仕組みがどのように誤解されていると確信しています。 – Piglet

+0

私は、file1がエクスポートされ、ロードされていないことを要求すると、file1のmoney値をfile2から変更したいと思っていました。 –

答えて

1
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 

のみM.中のSO M.moneyDataはお金には影響しません変更するお金と店のコピーを作成し、テーブルを参照します。したがって、Data.moneyDataの変更もお金には影響しません。その

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

に加え

は、その時点でmoneyの値を使用して、静的テキストで表示オブジェクトを作成します。その後、moneyの値を変更しても、テキスト表示の内容は変更されません。これを行うにはData.moneyText.textを変更する必要があります。

関連する問題