`
yangzc106
  • 浏览: 157259 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于Flex的简单仪表盘制作

    博客分类:
  • flex
阅读更多

 

仪表盘效果图:

 

JSON:

{
    "title": {
        "text": "绩效目标执行规划表",
        "fontsize": "20",
        "fontColor":"Black"
    },
    "elements": [
        {
            "color": "0x9933CC",
            "text": "30",
            "value":30
        },
        {
            "color": "0xCC3399",
            "text": "150",
            "value":120
        },
        {
            "color": "0x80a033",
            "text": "200",
            "value":50
        }
    ],
    "min":"0",
    "base":"20",
    "target": "100",
    "value":100
}

 

实现思路:

  •  仪表盘为半圆形,每个数据区间颜色不同,使用flex的画圆方式无法实现。所以首先绘画出扇形区域。代码如下:
		/**
		 * 绘制扇形
		 * mc:扇形所在影片剪辑的名字
		 * x:扇形原点的横坐标
		 * y:扇形原点的横坐标
		 * r:扇形的半径
		 * angle:扇形的角度
		 * startForm:起始角度
		 * color:扇形的颜色
		 * 
		 */
		public static function DrawSector(mc:MovieClip,x:Number=200,y:Number=200,r:Number=100,angle:Number=27,startFrom:Number=270,color:Number=0xff0000, alpha:Number=1.0):void {
			mc.graphics.beginFill(color,50);
			mc.graphics.lineStyle(0,0x000000,alpha);
			mc.graphics.moveTo(x,y);
			angle=(Math.abs(angle)>360)?360:angle;
			var n:Number=Math.ceil(Math.abs(angle)/45);
			var angleA:Number=angle/n;
			angleA=angleA*Math.PI/180;
			startFrom=startFrom*Math.PI/180;
			mc.graphics.lineTo(x+r*Math.cos(startFrom),y+r*Math.sin(startFrom));
			for(var i:int=1; i<=n; i++) {
				startFrom+=angleA;
				var angleMid:Number=startFrom-angleA/2;
				var bx:Number=x+r/Math.cos(angleA/2)*Math.cos(angleMid);
				var by:Number=y+r/Math.cos(angleA/2)*Math.sin(angleMid);
				var cx:Number=x+r*Math.cos(startFrom);
				var cy:Number=y+r*Math.sin(startFrom);
				mc.graphics.curveTo(bx,by,cx,cy);
			}
			if (angle!=360) {
				mc.graphics.lineTo(x,y);
			}
			mc.graphics.endFill();
		}

 

注:以上部分为Google内容。

 

  • 根据数据总和评分为180份,算出角度。绘制表盘。中间白色部分画出一个圆覆盖即可。源码如下:
public static function DrawCircle(mc:MovieClip,x:Number=200,y:Number=200,r:Number=100, alpha:Number=50, color:Number=0xff0000):void{
	mc.graphics.beginFill(color, alpha);
	mc.graphics.drawCircle(x, y, r);
	mc.graphics.endFill();
}
  •  指针只需要根据目标值,转化角度即可。
var rotate:Rotate = new Rotate();
rotate.target = indicator;
rotate.angleFrom = 开始角度;
rotate.angleTo = 目标角度;
rotate.originX = 选转中心点坐标;
rotate.originY = 选转中心点坐标;
rotate.play();

  

 至此所有技术点准备完毕。

  • 大小: 20.7 KB
分享到:
评论

相关推荐

    Flex实现仪表盘

    在本案例中,"Flex实现仪表盘"是一个利用ActionScript3.0开发的自定义UI组件,用于创建类似物理仪表盘的视觉效果,可能包括速度计、转速表、电量表等。 ActionScript3.0是Flex的核心,相较于早期的ActionScript2.0...

    Flex制作的Dashboard所见即所得编辑器并即时演示

    Dashboard在IT领域通常指的是数据可视化工具,它能够整合多种数据源,以图表、仪表盘等形式展示关键业务指标。 在描述中提到了一个博客链接,但具体内容没有给出。通常这样的博客会详细介绍如何使用Flex来开发这样...

    Flex 4 权威指南 代码

    例如,通过Flex 4,开发者可以创建交互式的图表、仪表盘,实时展示复杂的数据信息。 标签"Flex 4"表明了这个压缩包文件的内容与Flex 4紧密相关,可能是代码示例、项目案例、学习资料等。"flex4tfs"这个文件名可能...

    很好的dashboard

    MXML文件是Flex的源代码文件,其中"Needle"和"Circle"可能代表两个不同的自定义组件,一个是针状的指示器,另一个可能是圆形的图表或者仪表盘部分。这些组件可能是为了展示数据或模拟不同类型的仪表盘元素,如速度计...

    flex实战报表:jFreeChart,cewolf,iText.doc

    - **特殊图表**:jFreeChart还支持制作仪表盘和温度计等专业图表,为数据分析提供直观的视觉效果。 2. **cewolf** cewolf是另一个基于Java的Flex报表组件,它允许在Flex客户端直接生成和显示图表,提供更丰富的...

    IT技术文章示例

    FusionWidgets是一套专为Flex设计的图表和数据可视化组件,可以轻松创建各种图表和仪表盘。通过FusionWidgets,开发者可以快速实现复杂的数据可视化需求,而无需关心底层的图形渲染和动画细节。 ### 18. Flex与...

    北大青鸟三期毕业设计。asp.net OA系统

    在OA系统中,Flex可能用于制作图表、仪表盘等可视化元素,提供直观的数据展示。 学习这个项目,你可以了解到如何将这些技术整合到一个实际的项目中,理解它们如何协同工作以实现复杂功能。对于asp.net初学者,这是...

    Echarts数据可视化飞行社区

    1. **丰富的图表类型**:Echarts提供了多种图表类型,可以满足不同场景下的数据可视化需求,比如地图、仪表盘、热力图等。 2. **交互性**:Echarts图表支持用户交互,例如点击、缩放、平移等操作,用户可以直接在...

    flash统计图表。动态的显示flash

    FusionCharts允许开发者生成各种复杂且美观的图表,包括柱状图、饼图、线图、甘特图等,适用于商业报告、数据分析和仪表盘等场景。使用FusionCharts,你可以通过简单的API调用来配置和定制图表,实现数据的动态加载...

    前端开发求职-------------------简历.pdf

    6. **图形处理**:熟悉canvas绘图,用于在网页上动态绘制图形,three.js是一个用于创建3D图形的JavaScript库,Echarts是一个基于JavaScript的数据可视化库,可用于制作图表和仪表盘。 7. **构建工具**:掌握webpack...

    单片机的数字时钟设计说明.doc

    随着电子技术的发展,单片机被广泛应用在各种仪器仪表的设计中。本设计旨在利用单片机技术开发一款具有实用性的数字时钟,该时钟不仅可以显示时间、日期等基本信息,还具备一定的交互功能,用户可以通过键盘对时间和...

    Information Builders产品列表

    - **描述**:作为中央服务器,提供所有数据服务支持,包括报表、OLAP和仪表盘等功能。 - **依赖组件**:无 - **最小包**:CPU - **报价方式**:CPU - **作用**:ReportingServer是整个系统的核心组件,负责处理和...

Global site tag (gtag.js) - Google Analytics