Search code examples
actionscriptactionscript-2tween

AS2: Tween around ellipse


I have 7 movieclips on stage I want to tween around an ellipse from different start points. I am having lots of trouble doing this.... I used a circle formula at first and then divided the y value by the width of the ellipse over the height. This sort of worked but after every rotation the y value was a little of. That code is:

this._x += (Math.cos(angle * Math.PI/180) * radius); this._y += (Math.sin(angle * Math.PI/180) *radius)/1.54;

I also have trouble finding the angle of the start point, if it is off they won't travel in the same ellipse but they all have different starting angles.

Any clues?


Solution

  • Calculate the incidvidual offsets using this snippet:

    // assuming you have your buttons in an array called buttons
    for (var i:Number = 0; i < buttons.length; i++){
        buttons[i].angleOffset = 360 / buttons.length * i;
    }
    

    Set the position each update instead of moving, that way you wont get any drift. Update each object using this code, incrementing the angle var to get it to spin.

        this._x = offsetX + Math.sin((angle + angleOffset) * Math.PI/180) * radius; 
        this._y = offsetY + Math.cos((angle + angleOffset) * Math.PI/180) * radius / 1.54;