## Posted By

MaRmAR on 11/29/10

## Who likes this?

3 people have marked this snippet as a favorite

# AS3: Circle pie

/ Published in: ActionScript 3

Copy&paste into new document and move your mouse.

1. [SWF(width=400,height=400,backgroundColor=0xEFEFEF,frameRate=30)]
2. Â
3. const TWO_PI:Number = Math.PI * 2;
4. Â
5. var resolution:Number = 50;
6. var step:Number = TWO_PI / resolution;
7. var maxIndex:int = 0;
8. Â
9. var coords:Vector.<Number> = new Vector.<Number>();
10. var drawCommands:Vector.<int> = new Vector.<int>();
11. Â
12. // populate vectors
13. for (var i:Number = 0; i <TWO_PI + step; i += step){
14. Â  Â  coords.push(100 * Math.cos(i));
15. Â  Â  coords.push(100 * Math.sin(i));
16. Â  Â  drawCommands.push(GraphicsPathCommand.LINE_TO);
17. }
18. Â
19. var circleSegment:Shape = new Shape();
20. circleSegment.x = circleSegment.y = 200;
22. Â
24. function onLoop(evt:Event):void {
25. Â  Â  with (circleSegment.graphics) {
26. Â  Â  Â  Â  clear();
27. Â  Â  Â  Â  beginFill(0x000000);
28. Â  Â  Â  Â
29. Â  Â  Â  Â  // count by two, up to coords.length (drawCommands is exactly half the length of coords)
30. Â  Â  Â  Â  maxIndex = Â Math.ceil((mouseX / stage.stageWidth) Â * drawCommands.length) * 2;
31. Â
32. Â  Â  Â  Â  drawPath(drawCommands, coords.slice(0, maxIndex));
33. Â  Â  }
34. }

Posted By: burnandbass on December 3, 2010

Here is some mod to make it use Tweener:

Comment:

/*addEventListener(Event.ENTER_FRAME, onLoop); function onLoop(evt:Event):void { with (circleSegment.graphics) { clear(); beginFill(0x000000);

// count by two, up to coords.length (drawCommands is exactly half the length of coords)
maxIndex =  Math.ceil((mouseX / stage.stageWidth)  * drawCommands.length) * 2;

drawPath(drawCommands, coords.slice(0, maxIndex));
}

}*/

import caurina.transitions.Tweener;

var numProxy:Object = {}; numProxy.numValue = 0