transition.to 似乎不支持颜色过渡。所以我自己用 enterFrame 做了一个,我猜 Corona 的过渡库也是这样工作的。
只需将文件导入到您的项目中并 require 该文件。或者,如果您不想要一个名为 "TransitionColor" 的全局函数,请将该函数复制到您喜欢的位置。
用法类似于 transition.to 函数(为了我和您的理智着想)
-- setup
require("colorTransition")
local rect = display.newRect(50,50,100,100)
-- usage
TransitionColor(rect, {
startColor = {0,0,0,0},
endColor = {1,1,1,1},
time = 500,
transition = easing.outCubic
})
如果没有给出 options 表,该函数不会影响您的对象。
Options 表必须包含 startColor 和 endColor 值。
颜色应构建为包含 r、g、b、a 字段的表。Alpha 通道是可选的。
如果在 options 表中没有传入 time 值,则 time 值将默认为 300。
支持 Corona 的缓动库,如果在 options 表中没有传入 transition 值,则默认为 easing.linear。
有关更多信息,请参阅 Corona 缓动 API。
请参阅代码中的 colorInterpolate 函数,了解如何实现您自己的缓动效果!
您可以轻松地扩展此函数以添加 onStart/onComplete 事件回调以及暂停/恢复功能。
(一旦我有空,我会自己做,但这已经足够我目前的项目使用了)
适用于 Corona 构建版本 #:
2016.2828
贡献者:
danielr0