flex 线形图为虚线,绘制图例(1)

本文介绍如何在Flex中实现线形图,包括全实线、虚线和半实半虚线的绘制,并重点讲解了如何通过自定义itemRenderer、legendMarkerRenderer和lineSegmentRenderer来改变线条样式,以创建带圆点图例的线形图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:绘制线形图,其中一条为全实线,一条为虚线,一条为半实半虚;图例为线条加圆点。

困难:要改变线形图的样式,必须重写itemRenderer(节点渲染器),legendMarkerRenderer(图例渲染器),lineSegmentRenderer(线条渲染器)

 

(一)全虚线:lineSegmentRenderer="renderer.MarcoLineRenderer"

//全虚线
 public class MarcoLineRenderer extends LineRenderer
 {
  public function MarcoLineRenderer()
  {
   super();
  }
  
  //虚线条之间的间隔长度
  private var twoPointDistance:int = 10; 


  override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void 
  { 
   var stroke:IStroke = getStyle("lineStroke"); 
   var form:String = getStyle("form"); 
   var items:Array = data.items; 
   
   var g:Graphics = graphics; 
   g.clear(); 
   
   stroke.apply(g, null, null); 
   
   var i:int = 0; 
   var len:int = items.length; 
   
   for each( var item:LineSeriesItem in items ) 
   { 
    //从第2个点开始画连接虚线
    if( i > 0 ) 
    { 
     var preItem:LineSeriesItem = items[i-1]; 
     //当前值不为0,才与前一个点连接
     if(item.yValue >0)
     {
       drawDash(g, len, preItem.x, preItem.y, item.x, item.y); 
     }
    } 
    i++; 
   } 
   
  } 
  


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值