更新 Solar2D(原名CoronaSDK)中对象的文本

我想显示一个带有数字的文本,并在按下按钮时更新该数字。下面是我目前拥有的代码:

local oxyPar = 10
-- oxyPar 只是一个数字

local oxyOpt =
{
   text = "氧气:".. tostring( oxyPar )
   --所有其他文本参数
  }

local oxygen = display.newText( oxyOpt )
--使用 oxyOpt 表中的参数调用文本

local timeOpt =
{
   --所有按钮参数
   onRelease = timeOn
   --在按钮释放时调用 timeOn 函数
}

local timeBtn = widget.newButton( timeOpt )
--调用 timeOpt 表中的参数的按钮

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

按下按钮后,oxyPar(数字)应增加一,但文本仍然显示为 氧气:10 而不是 氧气:11。是否有一种方法可以更新文本以显示新数字?

点赞
用户2858170
用户2858170

改变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)的返回值复制到了另一个变量oxyOpt.text中。

改变oxygen.text而不是oxyPar

请参考Solar2d参考手册。

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

更新创建后的文本

local myText = display.newText( "hello", 100, 200, native.systemFont, 12 )
myText:setFillColor( 1, 0, 0.5 )

-- 修改显示的文本
myText.text = "Hello World!"
2020-12-08 13:40:42