Yeah that's the way, I'd do it too.
When you click, your player is given a speed by an action and set loose from the ball, making him fly towards the next ball in a physically correct way (caused by the bullet behaviour).
As soon as he touches the next ball, the coordinates are being saved. The angle of the ball would then have to be switched towards the player (to be able to calculate his position on the ball).
his position can then be calculated like so:
x position: ball.x (make hit-spot -> center) + ball.radius*(cos(ball.angle)) | you'll have to calculate the radius from the size of the sprite.
y position would be similar, just with sinus.
I hope we could help you, if you need any more help, just write us.