My formula:
class MoveAlongBezierCurve {
public static function moveAlongBezierCurve( a:Actor, x2:Float, y2:Float, cx:Float, cy:Float, t:Float, e:motion.easing.IEasing) {
var x1:Float;
var y1:Float;
var tempX:Float;
var tempY:Float;
var tempCX:Float;
var tempCY:Float;
x1 = a.getX();
y1 = a.getY();
tempX = Math.round(((x1 + x2) / 2));
tempY = Math.round(((y1 + y2) / 2));
tempCX = (tempX + ((cx - tempX) * 2));
tempCY = (tempY + ((cy - tempY) * 2));
a.activePositionTweens++;
a.tweenLoc.x = a.getX(false);
a.tweenLoc.y = a.getY(false);
var path = new MotionPath().bezier (x2, y2, tempCX, tempCY);
Actuate.motionPath (a.tweenLoc, t, { x: path.x, y: path.y }).ease(e).onComplete(a.onTweenPositionComplete);
}
}