DataGrid 与chart联动Step By Step 1

折磨了昨晚和今天一天,终于搞定了真正意义上的联动。

 

实现思路 :打击DataGrid的Item,触发Chart弹出dataTip

关键问题 :如何触发?columChart的dataTip是通过鼠标指向来触发的,flex无法实现控制鼠标移动

 

第一步,实现某一特定series被触发,通过继承ColumnChart类和ColumnSeries类

ColumnChart类重写findDataPoints,ColumnSeries类重写seriesdataTipFunction

在ColumnChart类中<textarea cols="50" rows="15" name="code" class="java">override public function findDataPoints(x:Number, y:Number):Array { //Alert.show(&quot;haha&quot;+k.toString()); /*if(!initialized) return []; if(_hitSet.length &gt; 0) return _hitSet;*/ var _hitSet:Array = []; var items:Array; for(var i:int = 0; i &lt; series.length; i++) { var dataTipFunction:Function = series[0].seriesdataTipFunction; items = series[i].chartitems; for(var j:int = 0;j &lt; items.length; j++) { var pt:Point = new Point(items[k].x+50,items[k].y+10); var hd:HitData = new HitData(0, 10, pt.x, pt.y, items[k]); hd.dataTipFunction = dataTipFunction;//datatip _hitSet.push(hd);//注入Hitdata,触发特定列 k ,k可由外部传入 } } return _hitSet; } } }</textarea>  

这样根据传入的K的不同,不同的列被触发。

代码参考于http://sunban.wordpress.com/2007/05/29/showing-all-datatips-and-printing-flex-column-chart/

你可能感兴趣的:(DataGrid 与chart联动Step By Step 1)