Main application file:
flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955"
minHeight="600"
xmlns:component="com.component.*"
pageTitle="2008北京奥运会奖牌" viewSourceURL="srcview/index.html">
width="600"
height="300"
verticalTotalValue="60">
width="127" height="267">
-->
chart:
/*************************************************
****
**** 黄记新,2010-10-14,下午04:58:40
****
************************************************/
// .==. .==.
// //`^\\ //^`\\
// // ^ ^\\ //^ ^^\\
// //^ ^^ ^\(\__/)/^ ^^ \\
// //^ ^^ ^^ /6 6\ ^ ^^ ^\\
// //^ ^^ ^^ /( .. )\^ ^ ^ ^\\
// // ^^ ^^ /\| V""V |/\^ ^ ^ \\
// // ^^ ^/\/ / `~~` \ \/\^ ^ \\
package com.component
{
import flash.display.Graphics;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.BevelFilter;
import flash.filters.DropShadowFilter;
import flash.utils.Dictionary;
import mx.core.IFactory;
import mx.core.UIComponent;
import spark.components.Group;
import spark.components.Label;
public class ColumnChart extends Group
{
//数据源
[Bindable]
private var _dataProvider:Object;
protected var dataProviderChanged:Boolean;
//渲染器
private var _itemRenderer:IFactory;
//滤镜
private var dropShadowFilter:DropShadowFilter=new DropShadowFilter();
private var bevelFilter:BevelFilter=new BevelFilter();
private var itemToRender:Dictionary;
private var renderToItem:Dictionary;
private var objectsArray:Array=[];
private var colorArray:Array=[];
private var labelArray:Array=[];
private var _verticalTotalValue:Number;
//滤镜
private var dropShadowFil:DropShadowFilter=new DropShadowFilter();
private var lineContainer:Group;
private var lineColor:uint=Math.random()*0xffffff;
public function ColumnChart()
{
//TODO: implement function
super();
itemToRender=new Dictionary(true);
renderToItem=new Dictionary(true);
this.filters=[dropShadowFil];
addEventListener(MouseEvent.ROLL_OVER, onRollOver);
addEventListener(MouseEvent.ROLL_OUT, onRollOut);
}
public function get verticalTotalValue():Number
{
return _verticalTotalValue;
}
public function set verticalTotalValue(value:Number):void
{
_verticalTotalValue=value;
}
/*************************************************
****
**** setter和 getter函数
****
************************************************/
public function get itemRenderer():IFactory
{
return _itemRenderer;
}
public function set itemRenderer(value:IFactory):void
{
_itemRenderer=value;
}
public function get dataProvider():Object
{
return _dataProvider;
}
public function set dataProvider(value:Object):void
{
/*if (_dataProvider == value)
{
return;
}*/
_dataProvider=value;
dataProviderChanged=true;
invalidateProperties();
}
/**
* 创建实例
* @param object
* @return
*/
protected function createItemInstance(object:Object):UIComponent
{
var render:UIComponent=itemRenderer.newInstance() as UIComponent;
if (render is IColumnItemRender)
{
IColumnItemRender(render).data=object;
}
return render;
}
/**
* 移除实例;
* @param object
*/
protected function removeItemInstance(object:Object):void
{
var render:UIComponent=itemToRender[object] as UIComponent;
if (render && this.contains(render))
{
this.removeElement(render);
itemToRender[object]=null;
renderToItem[render]=null;
}
}
/**
* 移除所有实例;
* @param array
*/
protected function removeAllItem(array:Array):void
{
if (array.length == 0)
return;
for (var i:int=0; i width, Group(event.currentTarget).mouseY);
/*g.moveTo(Group(event.currentTarget).mouseX, height);
g.lineTo(Group(event.currentTarget).mouseX, 0);*/
}
/**
* 响应条目项点击
* @param event
*/
private function onClick(event:MouseEvent):void
{
var render:UIComponent=event.currentTarget as UIComponent;
var object:Object=getItem(event.currentTarget as UIComponent);
if (!object)
{
return;
}
//派发条目点击事件
object.render=event.currentTarget as UIComponent;
dispatchEvent(new ColumnChartEvent(ColumnChartEvent.ITEM_CLICK, object));
}
private function getItem(render:UIComponent):Object
{
return renderToItem[render] as Object;
}
private function getRender(object:Object):UIComponent
{
return itemToRender[object] as UIComponent;
}
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
var totalValueHeight:Number=height / verticalTotalValue;
var averageHeigh:Number=verticalTotalValue / 10;
this.graphics.lineStyle(1, 0x123456);
this.graphics.moveTo(-5, height);
this.graphics.lineTo(-5, height - verticalTotalValue * totalValueHeight);
/*this.graphics.moveTo(-5, height+1);
this.graphics.lineTo(width, height+1);*/
for (var i:int=0; i
flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
autoDrawBackground="false"
implements="com.component.IColumnItemRender">
width:Number, height:Number, color:uint=0x000000, drawLine:Boolean=false, lineColor:uint=0x000000, alpha:Number=1, lineAlpha:Number=0.7):void
{
var xw:Number=x + width;
var yh:Number=y + height;
if (drawLine)
{
graphics.lineStyle(1, lineColor, lineAlpha, true);
}
else
{
graphics.lineStyle(1, color, lineAlpha, true);
}
graphics.beginFill(color, alpha);
graphics.moveTo(x, y);
graphics.lineTo(xw, y);
graphics.lineTo(xw, yh);
graphics.lineTo(x, yh);
graphics.endFill();
}
]]>
/*************************************************
****
**** 黄记新,2010-10-12,下午04:33:13
****
************************************************/
package com.component
{
public interface IColumnItemRender
{
function get data():Object;
function set data(object:Object):void;
}
}
发表评论
-
Oracle9i 长字符串存储的经验总结
2012-07-06 09:52 916项目从MySQL 到Oracle ... -
win7自带的正则表达式验证工具----powershell
2012-07-06 09:45 994最近项目中要用正则表达式,忽然想起powershell可以 ... -
java正则表达式学习总结,以及和javascript正则表达式的区别
2012-07-06 09:37 746用正则表达式处理字符串功能非常强大,下面总结一下java正 ... -
Android源代码下载与编译
2012-07-06 09:30 760使用repo下载官方http://android.git. ... -
asp.net中实现证件照拍照
2012-07-05 20:45 868以下代码需要用到最新版本ImageCapOnWeb控件,天 ... -
核心Swing组件(四)
2012-07-03 13:43 630Icon接口用来将图标 ... -
mx_internal变量读取和设置
2012-07-02 10:54 655Flex中很多组件的变量都有mx_internal命名空间 ... -
遮罩的使用
2012-07-02 10:54 582有N个按钮又不想其导航栏出现烦人的滚动条。 解决方法 ... -
实战 OpenLaszlo 与 db4o
2012-07-02 10:54 641本文于去年年底完 ... -
Flex 开发框架汇总
2012-07-01 00:34 574现有成熟常用的Flex ... -
Flex DivideBox
2012-07-01 00:33 495用户操作 [留言] [发消息] [加为好友] ... -
ArcGIS API for Flex and ArcGIS Viewer for Flex 2.2 发布
2012-07-01 00:33 605主要改进如下: 1 支持ArcGIS.com Web Ma ... -
免费NET&C#开发参考资料合辑
2012-07-01 00:33 824用户操作 [留言] [发消息] [加为好友] ... -
使用AJAX的十大理由
2012-07-01 00:33 580使用AJAX的十大理由: 10。XAML, XUL, ...
相关推荐
使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js...
柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图 柱状图
用Labview做柱状图,可以做数据分析用
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
matlab编程,生成渐变色的柱状图,可增强文章的可读性
css柱状图3Dechars图,css柱状图3Dechars图,css柱状图3Dechars图,css柱状图3Dechars图,css柱状图3Dechars图,css柱状图3Dechars图,css柱状图3Dechars图,css柱状图3Dechars图,css柱状图3Dechars图,css柱状图3...
ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图,用于统计的盒形图,用于地理数据可视化的地图、热力图、线图,用于关系数据可视化的关系图、treemap、旭日图,多维数据可视化的平行坐标,还有用于 BI 的...
用Labview做柱状图,可以做数据分析用
vml实现柱状图vml实现柱状图vml实现柱状图vml实现柱状图vml实现柱状图vml实现柱状图
对柱状图的绘制进行封装,通过类函数setValue进行传值,根据所传的值的大小绘制不同高度的柱状图,并在柱状图顶部显示具体数值,纵坐标标有刻度,功能实现简单明了,工程文件下载即可运行。
vue echarts实现横向柱状图 本文实例为大家分享了vue echarts实现横向柱状图的具体代码,供大家参考,具体内容如下 实现效果: 代码: <template> <div class="OverYearsPompany"> ; height: 368px; margin-...
柱状图转换成饼状图
用Delphi实现柱状图,是一个数据分析图表例子代码
Highcharts柱状图显示,柱状图显示颜色不一样
通过查找相关资料学习,自已写了一个小demo生成柱状图。
如何生成一个php柱状图代码,php柱状图的生成一直是一个比较头痛的问题,现在我终于找到如何生成一个柱状图的方法希望供大家参看
WPF 柱状图 堆积柱状图 Chart使用,VS2010版 C# WPF Chart组件实现柱状图,线形图,等统计图表
本文实例讲述了Python实现绘制双柱状图并显示数值功能。分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- #! python3 import matplotlib.pyplot as plt import mpl_toolkits.mplot3d #定义函数来显示柱状...
labview实现的柱状图以及扇形图,通过面向对象编程的方式实现。使用方法可以查看程序中提供的Example,同时程序提供了一个计数器类,也可以对计数器类进行修改优化。具体的使用方法参照Example即可。
Java 生成柱状图;可以直接运行,含jar文件,注释全。