The description you supplied gives you the answer. Roving with the setRovingAtKey command works only on SPATIAL (that is, any kind of positional) values. For some reason Adobe does not allow you to rover any other type of value. The first thing that comes in mind is to use the app.executeCommand with the CommandID 3153 (Rove Across time) app.executeCommand(3153); This would have the exact same effect, as right-clicking the keyframe and selecting the "Rove Across Time" option. The second is a lot more complicated and dirty workaround. You will have to create a 3D null, and "transfer" the separate R,G,B values of the three keyframes of the color property in question to the X,Y,Z values of a Null's 3D position. Then, Rove the second keyframe of the Null's Position, mark the new frame where AE moved the keyframe in the timeline and finally, move the second Color keyframe to the same frame in time. In more detail, let's say you already have 3 keyframes set in a color property. Create a new 3D Null and: Create a new keyframe in the Null's 3D Position, in the same frame in the timeline as the first keyframe of your Color property, and copy the R,G and B value of the color property to the X,Y and Z values of Null's position, respectively. Do the same with the other 2 keyframes and their values. Then, Rove the second keyframe of the Null's position like so: app.project.item(1).layer("Null 1").transform.position.setRovingAtKey(2, true); Finally, set the second keyframe of your Color property to the same frame, as the second (roved) keyframe of the Null's Position and safely delete the Null. This "solution" is far from perfect. As I said, just a dirty work-around. I would stick with the app.executeCommand Hope these solutions help.
... View more