// Petri Leskinen, leskinen[dot]petri[at]luukku.com // July 2008, Espoo, Finland package { import flash.display.Sprite; import flash.display.BitmapData; import flash.geom.Point; import flash.geom.Rectangle; import flash.display.GraphicsPathCommand; import flash.events.Event; import flash.events.MouseEvent ; public class GraphicsRadial2 extends Sprite { public var color:uint = 0x00; public var n:int =48; // curve length public var perlinData:BitmapData; public var po:Array= [ new Point(), new Point(), new Point() ]; public var paused:Boolean = false; private var _commands:Vector. = new Vector.(); private var _dataUint:Vector.; private var _dataVector:Vector.; private var angles:Array; private var i:int; public function GraphicsRadial2(_color:uint = 0x00) { this.color = _color; // init the vector '_commands' : // first command MOVE_TO, all other CURVE_TO _commands.push(GraphicsPathCommand.MOVE_TO); for (i=0 ; i(); var r0:int = perlinData.getPixel(0,0)&0xFF; pxlToCurve(0,1); for (i=0; i0) { r += perlinData.getPixel(x0,1)&0xFF; if (y>1) { r += perlinData.getPixel(x0,2)&0xFF; if (y>2) r += perlinData.getPixel(x0,3)&0xFF; if (y>3) r += perlinData.getPixel(x0,4)&0xFF; if (y>4) r += perlinData.getPixel(x0,5)&0xFF; } } r = 12+ (r>>div); // 12 - center radius _dataVector.push( r*angles[x0].cos,r*angles[x0].sin ); } // mouse click pauses motion private function mouseClicked(e:MouseEvent):void { if (paused) { addEventListener(Event.ENTER_FRAME, upDate); } else { removeEventListener(Event.ENTER_FRAME, upDate); } paused = !paused; } } }