Gradual controlled color change?

Does anyone know if there is a way to gradually change an object’s color in the game engine? I was thinking about doing something like this for one of the buttons in my game, so that when you moused over it, the button would change color. However, just doing it by setting object.color to some other value would be too sudden for my liking. Can you cause it to change gradually from one color to another?

For buttons use animated F-Curves on the colour channel, and then play the action.

Addition to sdfgeof’s suggestion: You can create material actions (Material tab) and Object color actions (Object tab)