Corona provides transitions. According to this post, a transitionTo(...) would suffice:
local rect = display.newRect(50,50,100,100)
rect:setFillColor(0,0,0,0)
transition.to( rect.fill, { r=1, g=1, b=1, a=1,
time=500,
transition=easing.inCubic }
)
The user can also cancel the transition if