在 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 )
oxyPar
和 oxyOpt
之间没有关系,因为您只是将 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!"
我想显示带有数字的文本并在按下按钮时更新数字。这是我现在得到的:
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 )
oxyPar
和 oxyOpt
之间没有关系,因为您只是将 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!"