nr20
nr20

Reputation: 1

ActionScript 2 following a path

I am having a problem finding information on using actionscript 2 to move an object along a more complicated path. I have no issue if i need to tween in the x or y direction, or at the same time, but If i wanted an object to follow a curvy path could someone provide me sample code for a way to follow a motion guide or a curved path like a bezier?

here is my usual code:

Tween1();
function Tween1(){
    setTimeout(theTween, 0);
    function theTween(){
        var myTween:Tween = new Tween(Object, "_x", Regular.easeOut, 0, 100, 1, true);
        var myTween:Tween = new Tween(Object, "_y", Regular.easeOut, 0, 100, 1, true);
}

Upvotes: 0

Views: 338

Answers (1)

Fergoso
Fergoso

Reputation: 1582

try this Animate along bezier curve

var circle:Shape = Shape(addChild(new Shape));
with(circle.graphics) beginFill(0x000000), drawCircle(0,0,5);

var bezierPoint:Point = new Point();
function bezier(a:Number, x1:Number, y1:Number, x2:Number, y2:Number, x3:Number, y3:Number):void {
        var b:Number =1-a;
        var pre1:Number=a*a;
        var pre2:Number=2*a*b;
        var pre3:Number=b*b;
        bezierPoint.x = pre1*x1 + pre2*x2  + pre3*x3;
        bezierPoint.y = pre1*y1 + pre2*y2 + pre3*y3;
}

var inc:Number = 0;
var theta:Number = 0;

addEventListener(Event.ENTER_FRAME, onLoop);
function onLoop(evt:Event):void {

     graphics.clear();
     graphics.lineStyle(0,0xFF0000);
     graphics.moveTo(200,200);
     graphics.curveTo(mouseX, mouseY, 400, 200);

    inc += .03;
    inc %= 1;

    bezier(inc, 200, 200, mouseX, mouseY, 400, 200);
    circle.x = bezierPoint.x;
    circle.y = bezierPoint.y;
}

Upvotes: 0

Related Questions