In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Sine Wave Motion

Simple example of how to do sine-wave motion.
Get Adobe Flash player
by ChevyRay 24 Mar 2013
/**
 * 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;
        }
    }
}