Forked from: seyself's code on 2008-12-19 diff:1 forked from: code on 2008-12-19 everdibe forked:0favorite:0lines:68license : All rights reserved modified : 2008-12-19 17:16:21 Embed Tweet // forked from seyself's code on 2008-12-19 package { [SWF(width="465", height="465", backgroundColor="#242424", frameRate="30")] dynamic public class Main extends MovieClip { public function Main() { screen = this; container = this; //---------------------------------------------- START >> var canvas:BitmapData = new BitmapData(465, 465, true, 0); stage.addChildAt(this.bitmap = new Bitmap(canvas), 0); var saturation:Number = random(1,0.6); var lightness:Number = random(0.85,0.65); var hue:uint = 0; var angle:Number = 0; var pt:Point = new Point(60, 60); loop = function():void { for (var i:uint = 0; i < 7;i++ ) { angle += 0.7654; pt.x = 250 + cos(angle) * 120; pt.y = 230 + sin(angle) * 120; with(graphics) { clear(); lineStyle(1, hsl(hue++, saturation, lightness), 0.2); drawCircle(pt.x, pt.y, 120); endFill(); } canvas.draw(this); } canvas.scroll(1, 0); } //---------------------------------------------- << END } // end of constructor public function set loop (value:Function) : void { if (value is Function) { _loop = function(e:Event):void { value.call(screen, null); }; addEventListener("enterFrame", _loop); } else { removeEventListener("enterFrame", _loop); }} private var _loop:Function; } // end of class import flash.display.*; import flash.geom.*; import flash.filters.*; import flash.text.*; import flash.events.*; import flash.utils.*; import caurina.transitions.Tweener; import caurina.transitions.properties.*; { // initialize ColorShortcuts.init(); FilterShortcuts.init(); } } // end of package var screen:*; var container:*; const PI:Number = 3.141592653589793; const PI2:Number = 6.283185307179586; const PI_HALF:Number = 1.5707963267948966; const PI_QUOT:Number = 0.7853981633974483; const PI_RADIAN:Number = 0.017453292519943295; const PI_DEGREE:Number = 57.29577951308232; const E:Number = 2.71828182845905; function cos (v:Number):Number { return Math.cos(v); } function sin (v:Number):Number { return Math.sin(v); } function tan (v:Number):Number { return Math.tan(v); } function log (v:Number):Number { return Math.log(v); } function sqrt (v:Number):Number { return Math.sqrt(v); } function pow (v:Number, n:Number):Number { return Math.pow(v, n); } function atan2 (y:Number, x:Number):Number { return Math.atan2(y, x); } function random (max:Number=1, min:Number=0):Number { return Math.random() * (max - min) + min; } function rgb (r:uint, g:uint, b:uint, a:Number = 0):uint { return a * 0xFF << 24 | r << 16 | g << 8 | b << 0; } function hsl (h:Number, s:Number, l:Number, a:Number = 0.0):uint { var r:Number = 0, g:Number = 0, b:Number = 0, cmin:Number, cmax:Number; if (s < 0) s = 0; if (s > 1) s = 1; if (l < 0) l = 0; if (l > 1) l = 1; h = h % 360; if (h < 0) h = h + 360; if (l <= 0.5) { cmin = l * ( 1 - s ); cmax = 2 * l - cmin; } else { cmax = l * ( 1 - s ) + s; cmin = 2 * l - cmax; }; r = _h2v(h + 120, cmin, cmax) * 0xFF; g = _h2v(h, cmin, cmax) * 0xFF; b = _h2v(h - 120, cmin, cmax) * 0xFF; a *= 0xFF; return a << 24 | r << 16 | g << 8 | b << 0; } function _h2v (h:Number, min:Number, max:Number):Number { h = h % 360; if (h < 0) h = h + 360; if (h < 60) return min + (max - min) * h / 60; if (h >= 60 && h < 180) return max; if (h >= 180 && h < 240) return min + (max - min) * (240 - h) / 60; return min; } Code Fullscreen Preview Fullscreen Math.min Math.max angle value addChildAt ColorShortcuts.init FilterShortcuts.init call Math.tan removeEventListener Math.log Math.atan2 drawCircle graphics Math.pow Math.sqrt Math.cos endFill Math.random addEventListener