Return to Snippet

Revision: 36893
at July 12, 2011 23:08 by MaRmAR


Updated Code
[SWF(width=400,height=400,backgroundColor=0xEFEFEF,frameRate=30)]
 
const TWO_PI:Number = Math.PI * 2;
 
var resolution:Number = 50;
var step:Number = TWO_PI / resolution;
var maxIndex:int = 0;
 
var coords:Vector.<Number> = new Vector.<Number>();
var drawCommands:Vector.<int> = new Vector.<int>();
 
// populate vectors
for (var i:Number = 0; i <TWO_PI + step; i += step){
    coords.push(100 * Math.cos(i));
    coords.push(100 * Math.sin(i));
    drawCommands.push(GraphicsPathCommand.LINE_TO);
}
 
var circleSegment:Shape = new Shape();
circleSegment.x = circleSegment.y = 200;
addChild(circleSegment);
 
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));
    }
}

Revision: 36892
at November 29, 2010 21:30 by MaRmAR


Initial Code
[SWF(width=400,height=400,backgroundColor=0xEFEFEF,frameRate=30)]
 
const TWO_PI:Number = Math.PI * 2;
 
var resolution:Number = 50;
var step:Number = TWO_PI / resolution;
var maxIndex:int = 0;
 
var coords:Vector.<Number> = new Vector.<Number>();
var drawCommands:Vector.<int> = new Vector.<int>();
 
// populate vectors
for (var i:Number = 0; i <TWO_PI + step; i += step){
    coords.push(100 * Math.cos(i));
    coords.push(100 * Math.sin(i));
    drawCommands.push(GraphicsPathCommand.LINE_TO);
}
 
var circleSegment:Shape = new Shape();
circleSegment.x = circleSegment.y = 200;
addChild(circleSegment);
 
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));
    }
}

Initial URL


Initial Description
Copy&paste into new document and move your mouse.

Initial Title
AS3: Circle pie

Initial Tags


Initial Language
ActionScript 3