SineAnimation study
♥0 |
Line 33 |
Modified 2013-04-06 06:13:07 |
MIT License
archived:2017-03-20 05:24:34
ActionScript3 source code
/**
* Copyright fra978 ( http://wonderfl.net/user/fra978 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/hWHP
*/
package {
import flash.display.Sprite;
import flash.events.TimerEvent;
import flash.utils.Timer;
import flash.display.CapsStyle;
import flash.display.LineScaleMode;
[SWF(backgroundColor="0x000000", framerate="60")]
public class SineAnimation extends Sprite{
public function SineAnimation():void{
var moveTimer:Timer=new Timer(10);
moveTimer.addEventListener(TimerEvent.TIMER,onTimer);
moveTimer.start();
}
public function drawCurve( phase:Number = 5, waveWidth:Number = 2, amplitude:Number = 100 , sineMcWidth:Number = 0):void{
if (sineMcWidth == 0){ sineMcWidth = stage.stageWidth; }
var offsetY:Number = stage.stageHeight/2;
var sineCurrentPointX:Number;
var currentDelta:Number;
var resultCurve:Sprite = new Sprite;
graphics.clear();
graphics.lineStyle(1, 0x990000, 1, false, LineScaleMode.NONE, CapsStyle.SQUARE);
graphics.moveTo(-20 ,offsetY );
for( var i:Number = 0; i < sineMcWidth; i++ ) {
currentDelta = Math.PI * i / 100*waveWidth + phase ;
sineCurrentPointX = offsetY + amplitude * Math.sin(currentDelta);
graphics.lineTo( i , sineCurrentPointX );
}
}
public function onTimer( e:TimerEvent ):void{
drawCurve(e.target.currentCount/100, .1);
}
}
}