中文ActionScript社区

首页 » 中文ActionScript分享社区 » ActionScript交流区 » 以前写的扇形统计图的类,分享一下
whb - 2008-5-9 16:28:00
class sxtjt {
public var fk_x:Number = 350;
public var fk_y:Number = 100;
public var x0:Number = 200;
public var y0:Number = 200;
public var r:Number = 80;
public var ys_array = new Array(0x000000, 0xff0000, 0x00ff00, 0x0000ff, 0xcccc66);
public var lx_array:Array = new Array("新闻:", "体育:", "动画:", "娱乐:", "戏曲:");
public var sj_array:Array;
public var jd_array:Array = new Array();
public var mc:MovieClip;
public var zs:Number = 0;
public function sxtjt(sj_array:Array, mc:MovieClip) {
  this.sj_array = sj_array;
  this.mc = mc;
}
//计算sj_array的数据的和;
public function setp():Number {
  var i:Number = 0;
  for (i=0; i<this.sj_array.length; i++) {
  this.zs = this.zs+this.sj_array;
  }
  return this.zs;
}
//给jd_array赋值;
public function seth() {
  var i:Number = 0;
  setp();
  for (i=0; i<this.sj_array.length; i++) {
  if (i == 0) {
    this.jd_array = Math.round(1000*(2*Math.PI)*(this.sj_array/this.zs))/1000;
  } else {
    this.jd_array = this.jd_array[i-1]+Math.round(1000*(2*Math.PI)*(this.sj_array/this.zs))/1000;
  }
  }
}
//画扇形:
public function sethsx():Void {
  seth();
  var l_array = new Array();
  l_array[0] = Number(0);
  var hh_array = l_array.concat(this.jd_array);
  var i:Number;
  var j:Number;
  for (i=0; i<this.jd_array.length; i++) {
  //fangkuai
  this.mc.createEmptyMovieClip("fk"+i, 40+i);
  this.mc["fk"+i].lineStyle(1, 0x000000, 100);
  this.mc["fk"+i].moveTo(fk_x, fk_y+(i*30)+20);
  this.mc["fk"+i].beginFill(ys_array);
  this.mc["fk"+i].lineTo(fk_x+20, fk_y+(i*30)+20);
  this.mc["fk"+i].lineTo(fk_x+20, fk_y+(i*30)+40);
  this.mc["fk"+i].lineTo(fk_x, fk_y+(i*30)+40);
  this.mc["fk"+i].lineTo(fk_x, fk_y+(i*30)+20);
  this.mc["fk"+i].endFill();
  //fangkuang
  mc.lineStyle(1, 0x000000, 100);
  mc.moveTo(fk_x-10, fk_y+12);
  mc.lineTo(fk_x+90, fk_y+12);
  mc.lineTo(fk_x+90, fk_y+sj_array.length*30+20);
  mc.lineTo(fk_x-10, fk_y+sj_array.length*30+20);
  mc.lineTo(fk_x-10, fk_y+12);
  //shuzi
  this.mc.createTextField("shz"+i, 60+i, fk_x+22, fk_y+(i*30)+20, 140, 40);
  this.mc["shz"+i].text = lx_array+Math.round(1000*sj_array/zs)/10+"%";
  //shanxing
  this.mc.createEmptyMovieClip("mc"+i, i);
  this.mc["mc"+i]._alpha = 50;
  this.mc["mc"+i].onRollOver = function() {
    this._alpha = 100;
  };
  this.mc["mc"+i].onRollOut = function() {
    this._alpha = 50;
  };
  this.mc["mc"+i].lineStyle(1, 0x000000, 100);
  this.mc["mc"+i].moveTo(x0, y0);
  this.mc["mc"+i].beginFill(ys_array);
  for (j=hh_array; j<=hh_array[i+1]; j=j+0.001) {
    var x1 = x0+r*Math.cos(j);
    var y1 = y0+r*Math.sin(j);
    this.mc["mc"+i].lineTo(x1, y1);
  }
  this.mc["mc"+i].lineTo(x0, y0);
  this.mc["mc"+i].endFill();
  }
}
}
1
查看完整版本: 以前写的扇形统计图的类,分享一下