a.lua
からに値を渡すにはどうすればよいb.lua
ですか?
私の中にa.lua
この変数のコードがあるとしましょう。
local value = "Hello WOrld!"
director:changeScene ("b")
私の問題は、どのようにvalue
からa.lua
に渡すことができるかということb.lua
です。
前もって感謝します....
ローカルなものを宣言すると、スクリプト間で共有しないようにLuaに明示的に指示します。代わりに、非ローカル変数を作成するだけです。
value = "Hello World"
b.luaファイルの場合a.luaファイルを要求し、それを使用します。例:b.luaファイルの場合
local a_File = require "a"
print(a_File.value)
次のように出力を取得します
"Hello World"
_G
次のように、値をグローバルテーブル()に割り当てます。
_G.value = "Hello WOrld"
別のスクリプトでは、次のようにすることができます。
value = _G.value
グローバルテーブルに何かを詰め込むよりも良いのは、lua のモジュールシステムを意図したとおりに使用することです。
a.lua と b.lua という 2 つのファイルがあるとします。b.lua には a.lua からの値が必要です。これはあなたがそれを達成する方法です:
a.lua コード:
module("a", package.seeall)
local myVal = "My value in file a"
local SomeVal = 15
function GetSomeValue()
return myVal
end
b.lua コード:
require "a"
print(a.GetSomeValue()) -- prints 'My value in file a'
print(a.SomeVal) -- prints 15
print(SomeVal) -- prints nil, unless you've declared it in b.lua
これは、_G テーブルに何かを詰め込むよりもはるかにクリーンです。3 つまたは 4 つの異なるスクリプトがあり、異なるコンテキストで同じ名前を付けるべき値を保存しようとするとどうなりますか? 言えること:
a.Value
a.Function()
どこからデータを取得しているかが明確であるだけでなく、
_G["Value"]
それが実際にあなたが望んでいる値であることを願っています。ファイルが 2 つだけの単純なケースで作業している場合は、_G を使用する方が簡単かもしれません。ただし、ベスト プラクティスを学び、早い段階で使用することをお勧めします。複数のファイルが協調して動作している場合、_G を使用するのは悪夢です...
director API を使用すると、値を別の lua ファイルに簡単に転送できます。テーブルまたは配列型でデータを送信します
以下のコードは便利です..
.lua ファイルから
data="hellow"
director:changeScene({data},"levelroom")
b.lua ファイルから
module(...,package.seeall)
new=function(params)
localGroup=display.newGroup()
data=params.data
print(data) --output:hellow
return localGroup
end