如何在 Lua 函数内部设置全局变量

如何在 func 外部获取 webView,我在 func 中进行了更改。请帮我一下。

webView = nil
function func()
    webView = native.newWebView( 0, 0, display.contentWidth, display.contentHeight )
    webView:request( "https://api.twitter.com/oauth/authenticate?oauth_token="..twitter_request_token )
    webView:addEventListener( "urlRequest", webListener )
end
print(webView) -- webView = nil
点赞
用户2753334
用户2753334

你可以在变量前面加上_G,这样它就会作为全局变量运行。

你必须在任何地方使用 _G 来使用你的变量。

例如:

 _G.yourVaribalename=display.newText();
2014-02-28 09:50:04
用户869951
用户869951

你不需要声明变量,除非指定为局部变量,否则它们会自动成为全局变量。并且你不能在定义 func 之前调用 func()。所以,试试这个:

function func()
    webView = native.newWebView(0, 0, display.contentWidth, display.contentHeight)
    webView:request( "https://api.twitter.com/oauth/authenticate?oauth_token=".. twitter_request_token)
    webView:addEventListener( "urlRequest", webListener )
end
func()
print(webView) -- webView 不会是 nil

在上述代码中,webView 是全局变量,因此它将在 func() 中创建后立即存在于全局,并将在 func() 返回后继续存在。

2014-02-28 16:51:30
用户1442917
用户1442917

你的例子基本上没有什么问题。你需要确保在定义后调用func(),但除此之外,它应该可以工作。例如,这对我输出了something

webView = nil
function func()
  webView = "something"
end
func()
print(webView)

是的,你可以在函数中使用显式引用_G.webView,但在你的情况下没有必要这样做。

如果你仍然遇到问题,可能是因为你认为func()被执行时实际上它没有被执行。尝试在函数中分配变量之后print变量的值。

2014-02-28 16:53:42