在 Solar2D(前 CoronaSDK)中更新对象的文本

Update object's text in Solar2D (ex-CoronaSDK)

我想显示带有数字的文本并在按下按钮时更新数字。这是我现在得到的:

local oxyPar = 10
--the oxyPar is just a number

local oxyOpt =
{
   text = "Oxygen: ".. tostring( oxyPar )
   --all other text parameters
  }

local oxygen = display.newText( oxyOpt )
--display a text calling oxyOpt table for the parameters

local timeOpt =
{
   --all the button parameters
   onRelease = timeOn
   --call timeOn function on the button release
}

local timeBtn = widget.newButton( timeOpt )
--a button that calls timeOpt table for the parameters

local function timeOn( listener )
   oxyPar = oxyPar + 1
end

按下按钮后,oxyPar(数字)应该增加一,但文本仍然显示 Oxygen: 10 而不是 Oxygen: 11。有没有办法更新文本以显示新号码?

更改oxyPar不会影响您的显示对象oxygen

一个数值按值复制所以

local oxyPar = 10
local oxyOpt = {text = tostring(oxyPar)}
local oxygen = display.newText( oxyOpt )

等同于

local oxyOpt = {text = "10"}
local oxygen = display.newText( oxyOpt )

oxyParoxyOpt 之间没有关系,因为您只是将 tostring(10) 的 return 值复制到另一个变量 oxyOpt.text 中。

改为ogygen.text

请参考Solar2d参考手册

https://docs.coronalabs.com/api/library/display/newText.html

Updating Text Post-Creation

local myText = display.newText( "hello", 100, 200, native.systemFont, 12 )
myText:setFillColor( 1, 0, 0.5 )
 
-- Change the displayed text
myText.text = "Hello World!"