This is a backwards way to do it, but it may work for you.
1. Create your shape layer and paste the position keyframes into the path.
2. Make sure the position keyframes on the fly are linear.
3. Add a Trim Path to your shape.
4. To the fly layer’s position, add this expression:
TRIMEND=pickwhip this part to the trim path end value;
BEG=timeToFrames(key(1).time);
END=timeToFrames(key(numKeys).time);
PERCENT=linear(TRIMEND,1,100,BEG,END);
TIME=framesToTime(PERCENT);
RESULT=position.valueAtTime(TIME);
RESULT
5. Then just use keyframes however you want to get from 0 to 100 percent on your trim path. Your fly will follow (or lead, I guess).
I’m sure the moderators could do a better job, but hopefully this helps.
Jim
TRIMEND=pickwhip this part to the trim path end value;
BEG=timeToFrames(key(1).time);
END=timeToFrames(key(numKeys).time);
PERCENT=linear(TRIMEND,1,100,BEG,END);
TIME=framesToTime(PERCENT);
RESULT=position.valueAtTime(TIME);
RESULT