My apologies if this has been mentioned before:
When using Autodesk's Maya I really liked how you could effortlessly link any variable of one object to drive a variable of another object.
For example, Let's say I want to animate a car driving along. I could make a car with wheels, facing in the X direction. and I would then choose the car's X position and link it to linearly affect the Z rotation of the wheels.
The effective equation this created is:
Wheel.Current_Z_rot = Wheel.Original_Z_rot + (Car.Original_X_pos - Car.Current_X_pos) * rotation_Scalar ;
Where the 'Original_' values are the values that these variables had at the creation of the link, and 'rotation_Scalar' allows you to easily tweak how fast the wheels spin relatively to how fast the position changes.
Once that's set up I could just animate the car's X position, tween it as I want, and would never have to worry about the wheels looking believable - the link I established means that they always rotate correctly in relation to the position.
Something like this would be excellent to have in Spriter.