`
Majesty123456
  • 浏览: 6773 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Flex 三维立体柱状图

 
阅读更多

 自己写了个简易的flex立状体图,效果如下:


flex:testSolidChart.mxml

<?xml version="1.0"?>
<!-- Simple example to demonstrate the ColumnChart and BarChart controls. -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:local="*">
	<fx:Script>
		<![CDATA[          
			import mx.charts.events.ChartItemEvent;
			import mx.charts.series.items.ColumnSeriesItem;
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			[Bindable]
			private var medalsAC:ArrayCollection = new ArrayCollection( [
				{ Country: "USA", Gold: 35, Silver:39, Bronze: 29 },
				{ Country: "China", Gold: 32, Silver:17, Bronze: 14 },
				{ Country: "Russia", Gold: 27, Silver:27, Bronze: 38 } ]);
			
			protected function custTypeChart_itemClickHandler(event:ChartItemEvent):void
			{
				var psi:ColumnSeriesItem= event.hitData.chartItem as ColumnSeriesItem;
				var po:ColumnSeries = psi.element as ColumnSeries;
				Alert.show(psi.item.Gold+"--"+po.fillc);
				
			}
		]]>
	</fx:Script>
	
	<fx:Declarations>
		<mx:SolidColor id="sc1" color="yellow" alpha=".8"/>
		<mx:SolidColor id="sc2" color="0xCCCCCC" alpha=".6"/>
		<mx:SolidColor id="sc3" color="0xFFCC66" alpha=".6"/>
		
		<mx:SolidColorStroke id="s1" color="yellow" weight="2"/>
		<mx:SolidColorStroke id="s2" color="0xCCCCCC" weight="2"/>
		<mx:SolidColorStroke id="s3" color="0xFFCC66" weight="2"/>
	</fx:Declarations>
	
	<mx:Panel title="ColumnChart and BarChart Controls Example" 
			  height="100%" width="100%" layout="horizontal">
		<mx:ColumnChart id="column" 
						height="100%" 
						width="100%" 
						paddingLeft="5" 
						paddingRight="5" 
						showDataTips="true" 
						dataProvider="{medalsAC}"
						showLabelVertically="true" 
						itemClick="custTypeChart_itemClickHandler(event)"
						>                
			<mx:horizontalAxis>
				<mx:CategoryAxis categoryField="Country" />
			</mx:horizontalAxis>
			
			<mx:series>
				<local:ColumnSeries
					xField="Country" 
					yField="Gold" 
					displayName="Gold"
					fill="{sc1}"
					stroke="{s1}"
					fillc="0x00CC66"
					itemRenderer="solid2Skin" 
					/>
				<local:ColumnSeries
					xField="Country" 
					yField="Silver" 
					displayName="Silver"
					fill="{sc2}"
					stroke="{s2}"
					fillc="0xaa0066"
					itemRenderer="solid2Skin"
					/>
				<local:ColumnSeries
					xField="Country" 
					yField="Bronze" 
					displayName="Bronze"
					fill="{sc3}"
					stroke="{s3}"
					fillc="0xDDCCAA"
					itemRenderer="solid2Skin"
					/>
			</mx:series>
		</mx:ColumnChart>
		
		<mx:Legend dataProvider="{column}"/>
		
	</mx:Panel>
</s:Application>

 

Flex:ColumnSeries.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:ColumnSeries xmlns:fx="http://ns.adobe.com/mxml/2009" 
				 xmlns:s="library://ns.adobe.com/flex/spark" 
				 xmlns:mx="library://ns.adobe.com/flex/mx">
	<fx:Script>
		<![CDATA[
			public var _fillc:uint = 0xff00ff;
			
			public function get fillc():uint
			{
				return _fillc;
			}
			public function set fillc(value:uint):void
			{
				_fillc = value;
			}
		]]>
	</fx:Script>
</mx:ColumnSeries>

 Flex:solid2Skin.as

package
{
	import flash.geom.Point;
	
	import mx.charts.series.items.ColumnSeriesItem;
	import mx.core.IDataRenderer;
	import mx.skins.ProgrammaticSkin;
	import mx.controls.Alert;
	
	public class solid2Skin extends ProgrammaticSkin implements IDataRenderer
	{
		private var colors:Array = [0x60cb00,0x6a7a88,0x3698ff,0x66a800,0xff6600,0x655fc8,0xd2691e];
		private var _chartItem:ColumnSeriesItem;
		
		public function solid2Skin()
		{
			super();
		}
		public function get data():Object
		{
			return Object(_chartItem);
		}
		public function set data(value:Object):void
		{
			_chartItem = value as ColumnSeriesItem;
//			Alert.show((_chartItem==null)+"");//?0:(_chartItem.element as ColumnSeries).fillc+"");
			invalidateDisplayList();
		}
		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
		{ 
			super.updateDisplayList(unscaledWidth,unscaledHeight);
			this.graphics.clear();
			var points:Array = getPoints(unscaledWidth*0.55,unscaledHeight);
			drawFill(points[4],points[7],points[6],points[5]);
			drawFill(points[7],points[6],points[2],points[3]);
			drawFill(points[5],points[1],points[2],points[6]);
			this.graphics.endFill();
			
		}
		
		//根据长宽获取3D坐标信息
		function getPoints(w:Number,h:Number):Array
		{
			var points:Array = new Array(8);
			points[0] = new Point(0,h);
			points[1] = new Point(w,h);
			points[2] = new Point(w,0);
			points[3] = new Point(0,0);
			points[4] = new Point(0-w/2.0,h+w/2.0);
			points[5] = new Point(0+w/2.0,h+w/2.0);
			points[6] = new Point(0+w/2.0,0+w/2.0);
			points[7] = new Point(0-w/2.0,0+w/2.0);
			return points;
		}
		//根据传入的坐标信息,绘制线条及填充绘制区域
		function drawFill(...args):void
		{
			with(this.graphics)
			{
				lineStyle(0.5,0x000000,0.8);
				beginFill((_chartItem == null)?0x000000:(_chartItem.element as ColumnSeries).fillc,0.95);
				moveTo(args[0].x,args[0].y);
				for(var i=1;i<args.length;i++)
				{
					lineTo(args[i].x,args[i].y);
				}				
			}
		}
		
	}
}

 

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

相关推荐

    flex的三维地图的制作

    本项目结合了Flex技术和超图软件iServer Java,旨在实现一个详细的三维地图应用。 首先,我们需要了解Flex的基础。Flex使用MXML和ActionScript来设计和构建用户界面,MXML是一种声明式语言,类似于HTML,用于定义UI...

    Flex制作的几款漂亮的立体柱状图饼状图和折线图

    在给定的资源中,"Flex制作的几款漂亮的立体柱状图饼状图和折线图"显然涉及到Flex的图表组件,这些组件允许开发者创建出具有专业视觉效果的数据可视化应用。 在Flex中,Chart类是用于展示数据的主要组件。它可以...

    FLEX画图之各种柱状图饼状图画法

    在本文中,我们将深入探讨如何使用Adobe Flex技术来创建各种柱状图和饼状图。Flex是一个基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。通过使用Flex,开发者可以轻松地创建交互式的图形界面...

    多款风格的Flex的Demo、柱状图、饼图、折线图等

    在这个压缩包中,包含了一系列的Flex Demo,涵盖了不同的图表类型,如柱状图、饼图和折线图,这些都是数据可视化的常用工具。 首先,让我们来详细了解一下Flex中的图表组件。Flex提供了强大的图表组件库,允许...

    Flex画饼状、柱状图资料参考

    ### Flex绘制饼状图与柱状图的知识点 #### Flex简介 Flex是一种开源的软件框架,主要用于构建跨浏览器、跨平台的应用程序。它基于ActionScript 3.0,支持多种编程语言,包括ActionScript和MXML。Flex拥有丰富的组件...

    flex绘制的3d柱状体图形

    3D柱状图是一种数据可视化工具,它能有效地展示分类数据的大小或数量,通过在Z轴上增加深度来呈现三维效果,从而提供更丰富的视觉体验。 在Flex中实现3D柱状体图形,主要依赖于Flex的图形渲染和组件库。以下是一些...

    用arcgis for flex 在地图上显示柱状图 饼状图和折线图

    本教程将深入讲解如何利用ArcGIS for Flex在地图上显示柱状图、饼状图和折线图,以便于用户更直观地理解地理数据。 首先,我们需要了解ArcGIS for Flex的基本概念。ArcGIS for Flex是一个基于Adobe Flex的开发库,...

    flex拖拽形成柱状图,点击弹出图片窗口,柱状图用法

    在本文中,我们将深入探讨如何使用Adobe Flex技术创建一个具有拖拽功能的柱状图,以及如何实现点击柱状图后弹出图片窗口的功能。Flex是一个开源的、基于ActionScript的框架,主要用于构建富互联网应用程序(RIA)。...

    flex倒立柱状图

    "flex倒立柱状图"是一个特别的图表类型,用于展示数据,它的设计与传统的柱状图相反,柱子从底部向上延伸,而不是从顶部向下。这种类型的图表在某些场景下能够提供独特的视觉效果,例如,当需要强调数据的基线或比较...

    基于FLEX4多功能柱状统计图

    基于FLEX4多功能柱状统计图,包括了分组统计图、单项统计图。知识点有:设置坐标轴样式、图例样式、柱子颜色设置、柱子mouseover、click事件等。还包括比较怪异的图例文字大小设置。 这是一个可直接运行的DEMO。...

    仿google三维地图的离线FLEX GIS

    【标签】:“仿google三维地图”表明了该项目的目标是模仿Google Maps的特性,如卫星图像、地形图和街景视图,而“离线FLEX GIS”则强调了该系统可以在无网络环境下的运行能力。GIS(地理信息系统)是一个关键的组成...

    flex 统计,柱状图,饼图。

    在本案例中,"flex 统计,柱状图,饼图"指的是使用Flex来创建数据可视化工具,具体是柱状图和饼图这两种常见的图表类型。 柱状图是一种统计图表,用于比较类别之间的数量差异。在Flex中,可以使用mx.charts系列类来...

    Flex动态创建多个曲线图和柱形图源码

    ### Flex动态创建多个曲线图和柱形图源码解析 #### 概述 在Adobe Flex框架下,开发者可以通过MXML和ActionScript实现丰富的用户界面和交互功能。在本例中,我们将探讨如何利用Flex来动态地创建多个曲线图和柱形图...

    flex开发系列书籍:三维实景模拟

    基于Flex的网络三维实景模拟技术的研究与实现.kdh

    Flex 饼形图 piechart 柱形图 columnchart 条形图 barchart 折线图 linechart

    在Flex中,饼形图(piechart)、柱形图(columnchart)、条形图(barchart)和折线图(linechart)是数据可视化的重要工具,广泛应用于数据分析和展示。 1. **饼形图(PieChart)** 饼形图用于显示部分与整体之间...

    Flex4中使用组件添加柱状图、饼状图等图表

    根据提供的文件信息,本文将详细介绍如何在Flex4中利用组件添加柱状图、饼状图等图表,并通过示例代码具体展示实现过程。 ### 一、Flex4中的柱状图 #### 1.1 柱状图简介 在Flex4中,柱状图是一种非常常见的数据...

    Flex漂亮的柱状图(ColumnChart)

    本资源包含的"Flex漂亮的柱状图(ColumnChart)"是一个示例项目,展示了如何在Flex中实现动态效果和颜色变化的柱状图。通过下载并解压提供的"columnChart"压缩包,您可以找到源代码和演示文件。其中,"test.html"是...

    flex统计图 柱状 饼图折线

    在本讨论中,我们将深入探讨如何使用Flex构建柱状图、饼图和折线图,这些都是数据可视化中常见的图表类型,对于数据分析和展示至关重要。 1. **柱状图(Bar Chart)**: 柱状图是用长条的高度或长度来表示数值大小...

    flex统计图标实例,饼状图,柱状图,折线图

    在本压缩包文件"Charts"中,我们聚焦于Flex中的统计图表功能,包括饼状图、柱状图和折线图的实例。这些图表是数据可视化的重要工具,帮助用户直观地理解复杂的数据信息。 饼状图在统计学中被广泛用于显示部分与整体...

Global site tag (gtag.js) - Google Analytics