如何使用过渡效果更改彩色文本?- Corona SDK

我能否使用过渡效果更改文本字段的颜色呢? 我尝试使用常规的过渡效果,像这样,但没有奏效。

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

翻译结果:

你无法使用 transition.to 实现这个效果。你需要在一个 enterFrame 监听器中执行,并且在每一步递增你的 R、G、B 值。

2013-10-28 00:17:08
用户736007
用户736007

下面是一个代码,允许您实现“闪烁”效果。您可以删除更改增量的部分,它将为您工作:

local min_r,min_g,min_b=100,100,255 -- 初始颜色
local max_r,max_g,max_b=255,255,255 -- 结束颜色
local color_steps=15 -- 调整此参数以实现更快/慢的速度
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 是两个需要同时更改的 display.newText

2013-11-07 09:13:58
用户2435623
用户2435623

你也可以这样做,只需将另一个对象覆盖在其上,并设置其 alpha 值为 0。然后使用 transition.to 方法将该对象的 alpha 属性更改为 1。

2014-04-17 10:42:53