




免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用FLASH画3D立体饼图先看效果图:方法如下:新建一FLASH文档,在第一个空白关键帧粘贴以下代码即可(100%如效果图所示):修改数据:找到var pie_num:String = 20,15,8,50,55,100,100,190;这一行可以修改数据。修改标注名称:找到var pie_name:String = 四川,重庆,云南,贵州,山西,湖南,上海,北京,广州;这一行可以修改标注。Stage.align = TL;Stage.scaleMode = noScale;_quality = BEST;import mx.transitions.Tween;import mx.transitions.easing.*;/全局/所有数据var pie_num:String = 20,15,8,50,55,100,100,190;/所有数据名称var pie_name:String = 四川,重庆,云南,贵州,山西,湖南,上海,北京,广州;/是否显示数据名称与百分比值var show_name:String = true,false,false,true,false,true,true,true/所有颜色var colorstr:String = 0xFF0F00,0xFF6600,0xFF9E01,0xFCD202,0xF8FF01,0xB0DE09,0x04D215,0x0D8ECF,0xFF1F11;/所有开始位置var defaultsate:String = false,false,false,false,false,false,false,true;/公共变量x0 = 210;/圆点坐标x(数字)y0 = 135;/圆点坐标y(数字)z = 150;/圆长轴(0)d = 90;/圆短轴(0)w = 150;/环宽(0,=0)movew = 15;/移动距离(0)alpha = 100;/点击之后的透明度(0-100)mcalpha = 100;/默认所有开始透明度(0-100)showorder = true;/是否显示竖向排列表(true,false)orderx = 400;/竖向排列表起始x(数字)ordery = 70;/竖向排列表起始y(数字)orderxy = 6;/竖向排列表竖向间隔(0)linecolor = 0xcccccc;/指示线颜色(十六进制颜色)linealpha = 100;/指示线透明度(0-100)titleline = 20; /指示线长度(0 | 01如1.43默认)/以下为三个饼图示例/第一个参数为影片名,第二个为深度群drawpie(amu,1, pie_num,pie_name,titleline,linecolor,linealpha,orderfontcolor,percentshow,fontcolor,colorstr,defaultsate,show_name, x0,y0,z,d,w,h,movew,alpha,mcalpha,dark, showorder,orderx,ordery,orderxy);drawpie(vapr,2, 15,30,60,90,好,不好,一般,差,太差了,0,0xcccccc,0,0x000000,all,0x666666,0x0D8ECF,0x04D215,0xB0DE09,0xF8FF01,0xFF9E01,0xFF6600,0xFF1F11,true,true,false,false,true,true,true,false, 160,380,70,70,50,2,15,100,100,1.5, true,20,340,13);drawpie(kiss,3, 30,50,290,70,50,10,Flash,Html,Javascript,Asp,PHP,C#,10,0x999999,100,0x000000,none,0xff6600,0x0D8ECF,0x04D215,0xB0DE09,0xF8FF01,0xFF9E01,0xFF6600,0xFF1F11,false,false,false,false,false,false,false,false,false,false,false,false,false,false, 470,300,100,60,60,20,15,50,100,1.15, false,280,250,28);drawpie(kisss,4, 242,332,171,116,106,224,Flash,Html,Javascript,Asp,PHP,C#,10,0x999999,100,0x000000,all,0xff6600,0x0D8ECF,0x04D215,0xB0DE09,0xF8FF01,0xFF9E01,0xFF6600,0xFF1F11,false,false,false,false,false,false,false,true,true,true,true,true,true,true, 370,520,60,40,40,10,15,50,100,1.15, true,515,480,3);function drawpie(mcname:String, depth:Number, pie_num:String, pie_name:String, titleline:Number, linecolor:Number,linealpha:Number, orderfontcolor:Number,percentshow:String, fontcolor:Number, colorstr:String, defaultsate:String, show_name:String, x0:Number, y0:Number, z:Number, d:Number, w:Number, h:Number, movew:Number, alpha:Number, mcalpha:Number, dark:Number, showorder:Boolean, orderx:Number, ordery:Number, orderxy:Number):Voidarr_n = pie_num.split(,);arr_total=0;for(m=0;marr_n.length;m+) arr_total+=Number(arr_nm);var arr_name = new Array();arr_name = pie_name.split(,);var arr_showname = new Array();arr_showname = show_name.split(,);var arr_num = new Array();var arr_percent = new Array();duof = 0;for(m=0;marr_n.length;m+) if(m=arr_n.length-1) duo = 360-duof; arr_numm= duo.toString(); else duo = Math.round(Number(arr_nm)*360)/arr_total); duof = duof+duo; arr_numm= duo.toString(); arr_percentm = Math.round(Number(arr_nm)*100)/arr_total*100)/100;/分割数据var arr_color = colorstr.split(,);var arr_defaultstate = defaultsate.split(,);/所有扇环的中间度var arr_middle:Array = new Array();/生成所有的扇环的中间度,用来确定深度var xx:Number=-90;var arr_a:Array = new Array();/记录每一扇环的开始度与结束度for(m=0; m180) arr_middlem = 0.001; else if(a-a0)/2+a0=0) /本mc的中间角度与90度的差值(这儿我们确定谁与90度差值的绝对值最小就排在最前面) arr_middlem = Math.abs(90-(a-a0)/2+a0); else if(a-a0)/2+a0180 & (a-a0)/2+a0=-90 & (a-a0)/2+a00) arr_middlem = (Math.abs(a-a0)/2+a0-360)+500); /本mc的中间角度与270度的差值(这儿我们确定谁与90度差值的绝对值最大就排在最前面) /trace(m+:+arr_middlem);/trace(arr_a00);/扇环排序arr_middle = arr_middle.sort(Array.NUMERIC|Array.RETURNINDEXEDARRAY);/重排序,让原来的数组值从小到大排列,但数组的索引不变。/arr_middle.reverse();/for(m = 0; m1如1.43)本pie对应竖向排列方块mc名。*/function drawCircle(mc:MovieClip, x0:Number, y0:Number, w1:Number, w2:Number, a0:Number, a:Number, h:Number, hw:Number, color:Number, movew:Number, alpha:Number, mcalpha:Number, movenow:String, valuepercent:Number, arr_name:String, arr_showname:String, titleline:Number, linecolor:Number,linealpha:Number, fontcolor:Number,percentshow:String,dark:Number, ordermc:MovieClip):Void /加减间隔度 step = 1; /求内长短轴 leichang = w1-hw; leiduan = w2-(hw*w2/w1); /深色 hicolor = darkcolor(color,dark); /- /下面为下面环; mc.beginFill(color, 100); /mc.lineStyle(1, color, 100, false, none); /外边 mc.moveTo(getPoint(x0, y0+h, w1, w2, a0).x, getPoint(x0, y0+h, w1, w2, a0).y); k = a0; while (ka0) k -= step; mc.lineTo(getPoint(x0, y0+h, leichang, leiduan, k).x, getPoint(x0, y0+h, leichang, leiduan, k).y); /侧边2 mc.lineTo(getPoint(x0, y0+h, leichang, leiduan, a0).x, getPoint(x0, y0+h, leichang, leiduan, a0).y); mc.endFill(); /- /下边高 /下边外侧边高 if(a0=0 & a=180) /解决90度时外侧面,显示事实为90度,实际为0度,因为我们整个旋转了-90度; mc.beginFill(hicolor, 100); mc.moveTo(getPoint(x0, y0+h, w1, w2, a0).x, getPoint(x0, y0+h, w1, w2, a0).y); k=a0; while (ka0) k -=step; mc.lineTo(getPoint(x0, y0, w1, w2, k).x, getPoint(x0, y0, w1, w2, k).y); mc.endFill(); mc.beginFill(hicolor, 100); mc.moveTo(getPoint(x0, y0+h, w1, w2, 0).x, getPoint(x0, y0+h, w1, w2, 0).y); k=0; while (k0) k -=step; mc.lineTo(getPoint(x0, y0, w1, w2, k).x, getPoint(x0, y0, w1, w2, k).y); mc.endFill(); else if(a=180 & a0=0) /解决180度时外侧面,显示事实为270度,实际为180度,因为我们整个旋转了-90度; mc.beginFill(hicolor, 100); mc.moveTo(getPoint(x0, y0+h, w1, w2, a0).x, getPoint(x0, y0+h, w1, w2, a0).y); k=a0; while (ka0) k -=step; mc.lineTo(getPoint(x0, y0, w1, w2, k).x, getPoint(x0, y0, w1, w2, k).y); mc.endFill(); mc.beginFill(hicolor, 100); mc.moveTo(getPoint(x0, y0+h, w1, w2, 180).x, getPoint(x0, y0+h, w1, w2, 180).y); k=180; while (k180) k -=step; mc.lineTo(getPoint(x0, y0, w1, w2, k).x, getPoint(x0, y0, w1, w2, k).y); mc.endFill(); else if(a0=180) /解决同时处于0度和180度的情况 mc.beginFill(hicolor, 100); mc.moveTo(getPoint(x0, y0+h, w1, w2, a0).x, getPoint(x0, y0+h, w1, w2, a0).y); k=a0; while (ka0) k -=step; mc.lineTo(getPoint(x0, y0, w1, w2, k).x, getPoint(x0, y0, w1, w2, k).y); mc.endFill(); mc.beginFill(hicolor, 100); mc.moveTo(getPoint(x0, y0+h, w1, w2, 0).x, getPoint(x0, y0+h, w1, w2, 0).y); k=0; while (k0) k -=step; mc.lineTo(getPoint(x0, y0, w1, w2, k).x, getPoint(x0, y0, w1, w2, k).y); mc.endFill(); mc.beginFill(hicolor, 100); mc.moveTo(getPoint(x0, y0+h, w1, w2, 180).x, getPoint(x0, y0+h, w1, w2, 180).y); k=180; while (k180) k -=step; mc.lineTo(getPoint(x0, y0, w1, w2, k).x, getPoint(x0, y0, w1, w2, k).y); mc.endFill(); else mc.beginFill(hicolor, 100); mc.moveTo(getPoint(x0, y0+h, w1, w2, a0).x, getPoint(x0, y0+h, w1, w2, a0).y); k = a0; while (ka0) k -= step; mc.lineTo(getPoint(x0, y0, w1, w2, k).x, getPoint(x0, y0, w1, w2, k).y); mc.endFill(); /下边开始侧面高 mc.beginFill(hicolor, 100); /mc.lineStyle(1, hicolor, 100, false, none); mc.moveTo(getPoint(x0, y0+h, w1, w2, a0).x, getPoint(x0, y0+h, w1, w2, a0).y); mc.lineTo(getPoint(x0, y0+h, leichang, leiduan, a0).x, getPoint(x0, y0+h, leichang, leiduan, a0).y); mc.lineTo(getPoint(x0, y0, leichang, leiduan, a0).x, getPoint(x0, y0, leichang, leiduan, a0).y); mc.lineTo(getPoint(x0, y0, w1, w2, a0).x, getPoint(x0, y0, w1, w2, a0).y); mc.endFill(); /下面结束侧面高 mc.beginFill(hicolor, 100); /mc.lineStyle(1, hicolor, 100, false, none); mc.moveTo(getPoint(x0, y0+h, w1, w2, a).x, getPoint(x0, y0+h, w1, w2, a).y); mc.lineTo(getPoint(x0, y0+h, leichang, leiduan, a).x, getPoint(x0, y0+h, leichang, leiduan, a).y); mc.lineTo(getPoint(x0, y0, leichang, leiduan, a).x, getPoint(x0, y0, leichang, leiduan, a).y); mc.lineTo(getPoint(x0, y0, w1, w2, a).x, getPoint(x0, y0, w1, w2, a).y); mc.endFill(); /下面内侧面高 mc.beginFill(hicolor, 100); /mc.lineStyle(1, hicolor, 100, false, none); mc.moveTo(getPoint(x0, y0+h, leichang, leiduan, a0).x, getPoint(x0, y0+h, leichang, leiduan, a0).y); k = a0; while (ka0) k -= step; mc.lineTo(getPoint(x0, y0, leichang, leiduan, k).x, getPoint(x0, y0, leichang, leiduan, k).y); mc.endFill(); /- /下面为上面环; mc.beginFill(color, 100); /mc.lineStyle(1, color, 100, false, none); /外边 mc.moveTo(getPoint(x0, y0, w1, w2, a0).x, getPoint(x0, y0, w1, w2, a0).y); k = a0; while (ka0) k -= step; mc.lineTo(getPoint(x0, y0, leichang, leiduan, k).x, getPoint(x0, y0, leichang, leiduan, k).y); /侧边2 mc.lineTo(getPoint(x0, y0, leichang, leiduan, a0).x, getPoint(x0, y0, leichang, leiduan, a0).y); mc.endFill(); /-显示名称与值 if(arr_showname=true) mc.beginFill(color, 100); mc.lineStyle(1, linecolor, linealpha); mc.moveTo(getPoint(x0, y0, w1, w2, a0+(a-a0)/2).x,getPoint(x0, y0, w1, w2, a0+(a-a0)/2).y); mc.lineTo(getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/w1, a0+(a-a0)/2).x,getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/w1, a0+(a-a0)/2).y); mc.endFill(); /trace(mc._name+:+(a0+(a-a0)/2); if(a0+(a-a0)/20 & a0+(a-a0)/290 & a0+(a-a0)/2180 & a0+(a-a0)/2-90 & a0+(a-a0)/20) var label:TextField = mc.createTextField(label, 1, getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/w1, a0+(a-a0)/2).x, getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/w1, a0+(a-a0)/2).y-18, 0, 0); label.autoSize = left; else if(a0+(a-a0)/2=0) var label:TextField = mc.createTextField(label, 1, getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/w1, a0+(a-a0)/2).x, getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/w1, a0+(a-a0)/2).y-9, 0, 0); label.autoSize = left; else if(a0+(a-a0)/2=90) var label:TextField = mc.createTextField(label, 1, getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/w1, a0+(a-a0)/2).x, getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/w1, a0+(a-a0)/2).y, 0, 0); label.autoSize = center; else if(a0+(a-a0)/2=180) var label:TextField = mc.createTextField(label, 1, getPoint(x0, y0, w1+titleline, w2+(w2*titleline)/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中化学原电池课件
- 高三拍摄脚本课件
- 高三化学最后一课课件
- 离婚双方共同财产分割协议范本及实施要点
- 猪场租赁合同(带屠宰加工服务)完整版
- 离婚双方彩礼退还及婚后财产分配执行合同
- 离婚协议房产分割与子女教育支持专项合同
- 环保投资担保合同风险分析与责任承担条款
- 髋臼骨折课件
- 矿业生态恢复治理方案
- 家庭教育指导案例报告
- 2024年河北省高中会考试卷数学(附答案)
- 2型糖尿病科普讲座课件
- 变电站消防培训课件
- 《律师执业纪律与职业道德》考试复习题库(含答案)
- 钢结构设计原理课件
- GB/T 43232-2023紧固件轴向应力超声测量方法
- 福建省行政区域划分图(从省到乡镇-超值)
- 剪映:手机短视频制作-配套课件
- 2021新高考I卷II卷英语读后续写解读讲评及写作技巧指导课件
- 2023无人机技术概论
评论
0/150
提交评论