|
200398sb40whb 中级会员
 
- 帖子
- 694
- 积分
- 127
- 技术分
- 13
- 在线时间
- 340 小时
- 注册时间
- 2004-6-17
|
16#
大 中
小 发表于 2008-5-10 23:05 只看该作者
写好了:
class txtjt {
//坐标的位置
public var zb_x:Number = 200;
public var zb_y:Number = 200;
//接受数组数据
public var sj_array:Array = new Array();
//数组数据的个数(画坐标的横坐标要用到)
public var max_x:Number;
//条形统计图的条形颜色
public var ys_array = new Array(0x000000, 0xff0000, 0x00ff00, 0x0000ff, 0xcccc66);
//条形统计图的栏目
public var lx_array:Array = new Array("新闻", "体育", "动画", "娱乐", "戏曲");
public var _mc:MovieClip;
//建构函数
public function txtjt(sj_array:Array, _mc:MovieClip) {
this.sj_array = sj_array;
this._mc = _mc;
this.max_x = sj_array.length;
}
//定义方法,找出数组中的最大值
public function max_fc():Number {
var max:Number = sj_array[0];
for (var i:Number = 0; i<sj_array.length; i++) {
max<sj_array ? max=sj_array : max=max;
}
return max;
}
//定义画出坐标轴的方法
public function zb_fc():Void {
//画坐标:
_mc.lineStyle(1, 0x000000, 100);
_mc.moveTo(zb_x, zb_y);
_mc.lineTo(zb_x+40*max_x+20, zb_y);
_mc.lineTo(zb_x+40*max_x+20-5, zb_y-5);
_mc.moveTo(zb_x+40*max_x+20, zb_y);
_mc.lineTo(zb_x+40*max_x+20-5, zb_y+5);
_mc.moveTo(zb_x, zb_y);
_mc.lineTo(zb_x, zb_y-120);
_mc.lineTo(zb_x-5, zb_y-120+5);
_mc.moveTo(zb_x, zb_y-120);
_mc.lineTo(zb_x+5, zb_y-120+5);
_mc.moveTo(zb_x, zb_y);
_mc.lineStyle(1, 0x000000, 20);
_mc.beginFill(0x33ffcc, 40);
_mc.lineTo(zb_x+40*max_x, zb_y);
_mc.lineTo(zb_x+40*max_x, zb_y-100);
_mc.lineTo(zb_x, zb_y-100);
_mc.lineTo(zb_x, zb_y);
_mc.endFill();
_mc.moveTo(zb_x, zb_y-25);
_mc.lineTo(zb_x+40*max_x, zb_y-25);
_mc.moveTo(zb_x, zb_y-50);
_mc.lineTo(zb_x+40*max_x, zb_y-50);
_mc.moveTo(zb_x, zb_y-75);
_mc.lineTo(zb_x+40*max_x, zb_y-75);
_mc.createTextField("y_txt", 0, zb_x, zb_y-120, 30, 18);
_mc.y_txt.text = "人数";
_mc.createTextField("x_txt", 1, zb_x+40*max_x, zb_y, 60, 18);
_mc.x_txt.text = "节目类别";
tx_fc();
}
//画条形图:
private function tx_fc():Void {
//条形的宽度:
var d:Number = 20;
//条形的距离:
var l:Number = 40;
//条形的高度单位:
var h:Number = 100/max_fc();
//条形的透明度:
var ah:Number = 50;
for (var i:Number = 0; i<max_x; i++) {
_mc.createEmptyMovieClip("mc"+i, 3+i);
_mc["mc"+i].lineStyle(1, 0x000000, 0);
_mc["mc"+i].beginFill(ys_array);
_mc["mc"+i].moveTo(zb_x+i*l+8, zb_y);
_mc["mc"+i].lineTo(zb_x+i*l+d+8, zb_y);
_mc["mc"+i].lineTo(zb_x+i*l+d+8, zb_y-h*sj_array);
_mc["mc"+i].lineTo(zb_x+i*l+8, zb_y-h*sj_array);
_mc["mc"+i].lineTo(zb_x+i*l+8, zb_y);
_mc["mc"+i].endFill();
_mc["mc"+i]._alpha=ah;
_mc["mc"+i].onRollOver = function() {
this._alpha = 100;
};
_mc["mc"+i].onRollOut = function() {
this._alpha = ah;
};
//
_mc.createTextField("txt"+i, 10+i, zb_x+i*l+10, zb_y-h*sj_array-15, 20, 18);
_mc["txt"+i].text = sj_array;
_mc.createTextField("lx"+i, 20+i, zb_x+i*l+5, zb_y, 30, 18);
_mc["lx"+i].text = lx_array;
}
for (var i:Number = 0; i<5; i++) {
_mc.createTextField("rs"+i, 30+i, zb_x-20, zb_y-25*i-10, 20, 18);
_mc["rs"+i].text = Math.round(max_fc()*i/4);
_mc["rs"+i].autoSize = "right";
}
}
}
效果:
var t = new txtjt([4, 10, 15, 18, 3], this);
t.zb_fc();
|