flash9 Math.sin by example
Example 'MathSinbyexample', uses the haxe timer to draw a sinewave.
// author: JLM at justinfront import flash.display.MovieClip; import flash.display.Sprite; import haxe.Timer; import flash.Lib; class MathSinbyexample { public static inline var RED: Int = 0xFF0000; private var _stage: MovieClip; private var _view_mc: Sprite; private var _wide: Int; private var _step: Int; private var _amplitude: Int; private var _timeStep: Int; private var _timer: Timer; private var _x: Int; private var _y: Float; private var _dAngle: Int; private var _radians: Float; private var _angleChange: Float; public function new( wide_: Int, step_: Int, amplitude_: Int, timeStep_: Int, dAngle_: Int ) { _wide = wide_; _step = step_; _amplitude = amplitude_; _timeStep = timeStep_; _dAngle = dAngle_; _stage = Lib.current; _radians = 0; _angleChange = _dAngle * Math.PI/360; init(); } private function init():Void { createView(); _view_mc.graphics.lineStyle( 0, RED, 1); _timer = new Timer( _timeStep ); _timer.run = drawSine; } private function createView():Void { _view_mc = new Sprite(); _view_mc.x = 10; _view_mc.y = 250; _stage.addChild( _view_mc ); } public function drawSine():Void { if( (_x+=_step) > _wide ) { _timer.stop(); } _radians += _angleChange; _y = _amplitude * Math.sin( _radians ); _view_mc.graphics.lineTo( _x, _y ); } public static function main(): Void { var wide:Int = 760; var step:Int = 3; var amplitude: Int = 200; var timeStep: Int = 30; var dAngle: Int = 5; new MathSinbyexample( wide, step, amplitude, timeStep, dAngle ); } }
Example compiler code, creates a 800 x 600 flash 9 swf with a grey background.
SEE DEMO
-swf mathsinbyexample.swf -swf-version 9 -main MathSinbyexample -swf-header 800:600:30:cccccc
version #11015, modified 2011-09-20 03:23:24 by JLM