3

a.luaからに値を渡すにはどうすればよいb.luaですか?

私の中にa.luaこの変数のコードがあるとしましょう。

local value = "Hello WOrld!"
director:changeScene ("b")

私の問題は、どのようにvalueからa.luaに渡すことができるかということb.luaです。

前もって感謝します....

4

4 に答える 4

9

ローカルなものを宣言すると、スクリプト間で共有しないようにLuaに明示的に指示します。代わりに、非ローカル変数を作成するだけです。

value = "Hello World"

b.luaファイルの場合a.luaファイルを要求し、それを使用します。例:b.luaファイルの場合

local a_File  = require "a"
print(a_File.value)

次のように出力を取得します

"Hello World"
于 2012-05-15T02:35:20.863 に答える
5

_G次のように、値をグローバルテーブル()に割り当てます。

_G.value = "Hello WOrld"

別のスクリプトでは、次のようにすることができます。

value = _G.value
于 2012-05-15T02:34:01.250 に答える
3

グローバルテーブルに何かを詰め込むよりも良いのは、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 を使用するのは悪夢です...

于 2012-05-15T15:00:31.890 に答える
1

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
于 2012-08-24T15:48:18.863 に答える