Sine Wave Motion
Simple example of how to do sine-wave motion.
/**
* Copyright ChevyRay ( http://wonderfl.net/user/ChevyRay )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/dt8v
*/
package
{
import flash.display.Shape;
import flash.events.Event;
import flash.display.Sprite;
import flash.utils.getTimer;
public class SineWave extends Sprite
{
public var totalTime:Number = 0;
public var balls:Array = new Array(3);
public function SineWave()
{
addEventListener(Event.ENTER_FRAME, update);
//Create and position the balls
for (var i:int = 0; i < balls.length; i++)
{
balls[i] = new Shape();
balls[i].x = 50 + 50 * i;
balls[i].graphics.beginFill(0xFF0000);
balls[i].graphics.drawCircle(0, 0, 20);
addChild(balls[i]);
}
}
public function update(e:Event):void
{
//Get the total time in seconds
totalTime = getTimer() / 1000;
//Make the balls wave
for (var i:int = 0; i < balls.length; i++)
{
balls[i].y = wave(2, 100, 200, (i / balls.length) * 0.25);
}
}
public function wave(time:Number, from:Number, to:Number, offsetPercent:Number = 0):Number
{
var range:Number = (to - from) / 2;
return from + range + Math.sin(((totalTime + time * offsetPercent) / time) * (Math.PI * 2)) * range;
}
}
}