- class pieChart {
- var dataArray:Array;
- function pieChart() {
- dataArray = new Array();
- }
- function addData(obj:Object) {
- dataArray.push(obj);
- }
- function render(cible:MovieClip, coord:Object) {
- var total:Number = 0;
- var ratio:Number = 0;
- var totalDegree:Number = 0;
- for (var i = 0; i<=dataArray.length-1; i++) {
- total += dataArray[i].value;
- }
- ratio = 360/total;
- for (var i = 0; i<=dataArray.length-1; i++) {
- dataArray[i].value = Math.round(dataArray[i].value*ratio);
- }
- for (var i = 0; i<=dataArray.length-1; i++) {
- pieceOfPie(cible, totalDegree, dataArray[i].value, coord, {rgb:0x000000, thickness:-1, alpha:100}, {rgb:dataArray[i].rgb, alpha:50});
- totalDegree += dataArray[i].value;
- }
- }
- function pieceOfPie(_cible:MovieClip, rotation:Number, degree:Number, coord:Object, lineColor:Object, fillColor:Object) {
- _cible.moveTo(coord.x, coord.y);
- _cible.lineStyle(lineColor.thickness, lineColor.rgb, lineColor.alpha);
- _cible.beginFill(fillColor.rgb, fillColor.alpha);
- for (var i = rotation; i<=rotation+degree; i ++) {
- var endX:Number = coord.x+coord.r*Math.cos((i)*Math.PI/180);
- var endY:Number = coord.y+coord.r*Math.sin((i)*Math.PI/180);
- _cible.lineTo(endX, endY);
- }
- _cible.endFill();
- }
- }
class pieChart {
var dataArray:Array;
function pieChart() {
dataArray = new Array();
}
function addData(obj:Object) {
dataArray.push(obj);
}
function render(cible:MovieClip, coord:Object) {
var total:Number = 0;
var ratio:Number = 0;
var totalDegree:Number = 0;
for (var i = 0; i<=dataArray.length-1; i++) {
total += dataArray[i].value;
}
ratio = 360/total;
for (var i = 0; i<=dataArray.length-1; i++) {
dataArray[i].value = Math.round(dataArray[i].value*ratio);
}
for (var i = 0; i<=dataArray.length-1; i++) {
pieceOfPie(cible, totalDegree, dataArray[i].value, coord, {rgb:0x000000, thickness:-1, alpha:100}, {rgb:dataArray[i].rgb, alpha:50});
totalDegree += dataArray[i].value;
}
}
function pieceOfPie(_cible:MovieClip, rotation:Number, degree:Number, coord:Object, lineColor:Object, fillColor:Object) {
_cible.moveTo(coord.x, coord.y);
_cible.lineStyle(lineColor.thickness, lineColor.rgb, lineColor.alpha);
_cible.beginFill(fillColor.rgb, fillColor.alpha);
for (var i = rotation; i<=rotation+degree; i ++) {
var endX:Number = coord.x+coord.r*Math.cos((i)*Math.PI/180);
var endY:Number = coord.y+coord.r*Math.sin((i)*Math.PI/180);
_cible.lineTo(endX, endY);
}
_cible.endFill();
}
}