Corona SDK - 如何通过转换更改彩色文本?

时间:2013-10-27 16:14:46

标签: lua corona

我可以通过转换更改文本字段的颜色吗? 我尝试像这样的正常过渡,但没有用。

explainer = display.newText("my text", 100,100,"Hiragino Maru Gothic Pro",30)
transition.to(explainer, { time=100, color="rgba(255,0,0)" })

3 个答案:

答案 0 :(得分:1)

你真的不能用transition.to做到这一点。您必须在enterFrame侦听器中执行此操作,并在每个步骤中增加R,G,B值。

答案 1 :(得分:1)

这是一段让你产生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()

在这种情况下,rowPlayerNamerowScore为2 display.newText,需要一起更改。

答案 2 :(得分:0)

你还可以做的是,只是将另一个对象放在不同的颜色上并将其alpha设置为0.然后使用transition.to方法将此对象的alpha属性更改为1.