package examples
{
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
[SWF(width="320", height="320", backgroundColor="0xFFFF00",
frameRate="31")]
/**
* Spiral example.
* @author wvxvw
*/
public class Main extends Sprite
{
private var _angle:Number = 0;
private var _centerX:int = 160;
private var _centerY:int = 160;
public function Main()
{
if (super.stage) init();
else super.addEventListener(Event.ADDED_TO_STAGE, this.init);
}
private function init(event:Event = null):void
{
super.removeEventListener(Event.ADDED_TO_STAGE, this.init);
super.addEventListener(Event.ENTER_FRAME, this.drawSpiral);
}
private function drawSpiral(event:Event = null):void
{
var radiusA:int = 228;
var radiusB:int = 200;
var angle:Number = this._angle;
var g:Graphics = super.graphics;
var lineAlpha:Number = 1;
var len:Number = Math.PI * 2;
var step:Number = len * 0.125;
g.clear();
g.lineStyle(10, 0xFF8000, lineAlpha);
g.moveTo(this._centerX + Math.cos(angle) * radiusA,
this._centerY + Math.sin(angle) * radiusA);
for (var i:int = 0; i < 32; i++)
{
angle += step;
radiusA *= 0.9;
radiusB *= 0.9;
g.curveTo( this._centerX + Math.cos(angle) * radiusA,
this._centerY + Math.sin(angle) * radiusA,
this._centerX + Math.cos(angle + step * 0.5) * radiusB,
this._centerY + Math.sin(angle + step * 0.5) * radiusB);
}
this._angle += step;
}
}
}
Have fun :)