Can i change color of text field with transition? I try with normal transition like this but did not work.
explainer = display.newText("my text", 100,100,"Hiragino Maru Gothic Pro",30)
transition.to(explainer, { time=100, color="rgba(255,0,0)" })
这是一个让你产生blink
效果的代码。您可以删除更改增量的部分,它将为您工作:
local min_r,min_g,min_b=100,100,255 -- Initial color
local max_r,max_g,max_b=255,255,255 -- End color
local color_steps=15 -- Adjust this to make it more fast/slow
local current_step=0
local increment=1
local step_r=(max_r-min_r)/color_steps
local step_g=(max_g-min_g)/color_steps
local step_b=(max_b-min_b)/color_steps
function blink()
if (rowPlayerName and rowPlayerName["text"] and rowScore and rowScore["text"]) then
rowPlayerName:setTextColor( min_r+current_step*step_r, min_g+current_step*step_g, min_b+current_step*step_b )
rowScore:setTextColor(min_r+current_step*step_r, min_g+current_step*step_g, min_b+current_step*step_b )
current_step=current_step+increment
if (current_step>=color_steps) then
current_step=color_steps-1
increment=-increment
elseif (current_step<0) then
current_step=0
increment=-increment
end
timer.performWithDelay(50, blink)
end
end
blink()
在这种情况下,rowPlayerName
和rowScore
是display.newText
需要一起更改的 2 个。
你真的不能用transition.to做到这一点。您必须在 enterFrame 侦听器中执行此操作,并在每个步骤中增加您的 R、G、B 值。
您还可以做的,只是将另一个具有不同颜色的对象放在它上面并将其 alpha 设置为 0。然后使用 transition.to 方法将此对象的 alpha 属性更改为 1。