flex3d柱状图

    这几天要做flex chart,看她们做的3d图很是漂亮,自己也做了个简单3d的拼图~

简单介绍下它的画法:首先确定一个起始点,然后开始 画柱体的上面部分,再画画柱体的前面,侧面,

 当然了,画面的顺序你自己可以定,先画那个面都可以。

先放个效果图出来看看:

 

代码如下:首先是自定义的as组件(这里主要贴画法的部分):

// 画柱体的上面部分
			matrix.createGradientBox(wi, xx, (270/180)*Math.PI, ox, oy);
			g.beginGradientFill("linear",colors,alphas,ratios,matrix);
			graphics.moveTo(ox,oy); 
		    graphics.lineTo(ox+wi,oy);
		    graphics.lineTo(ox+wi-xx,oy+xx);
		    graphics.lineTo(ox-xx,oy+xx);
		    graphics.endFill();
	      // 画柱体的前面,
		 	colors = [lighter,fillColor];
			alphas = [1,1];
			ratios = [0,127];
			matrix.createGradientBox(wi, he, Math.PI/2, ox-xx, oy+xx);
			g.beginGradientFill("linear",colors,alphas,ratios,matrix);
		    g.drawRect(ox-xx,oy+xx,wi,he);
		    g.endFill();
		   //画右侧面
		   colors = [fillColor,lighter];
			alphas = [0.7,0.7];
			ratios = [0,255];
		    matrix.createGradientBox(xx, he+xx, (270/180)*Math.PI, ox+wi-xx, oy+xx);
			g.beginGradientFill("linear",colors,alphas,ratios,matrix);
		    g.moveTo(ox+wi-xx,oy+xx);
		    g.lineTo(ox+wi,oy);
		    g.lineTo(ox+wi,oy+he-xx);
		    g.lineTo(ox+wi-xx,oy+he+xx);
		    g.endFill();

说明一下, g.beginGradientFill("linear",colors,alphas,ratios,matrix);是线性变化填充,g.beginFill()代替

 

下面是mxml页面代码(主要):

<mx:Panel id="panel"   verticalCenter="true" horizontalAlign="true" title="自定义3d柱状图"
		 width="80%" height="90%" alpha="1"  paddingBottom="0" 
		 paddingLeft="0"  paddingTop="0" paddingRight="0">
		
	<mx:ColumnChart id="cs" width="70%" height="80%">
	<mx:horizontalAxis>
		<mx:CategoryAxis  id="haxis" categoryField="@name"/>
	</mx:horizontalAxis>
		<mx:series>
			<mx:ColumnSeries maxWidth="20" yField="undo"  maxColumnWidth="25" displayName="@name"
								>
								<mx:itemRenderer>
									<mx:Component>
									<local:RollOverBoxItemRenderer color="#8888E0" downColor="#8888E0" overColor="#8888E0"/>
									</mx:Component>
								</mx:itemRenderer


>
							</mx:ColumnSeries>
		</mx:series>
	</mx:ColumnChart>

  注意:红色的部分

源文件如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值