(四)显示节点的渲染器:itemRenderer="renderer.SolidColorCircleRenderer",可通过样式控制数据是否显示在图形上,比较复杂
override public function styleChanged(styleProp:String):void
{
super.styleChanged(styleProp);
if(styleProp == "fromIndex" || styleProp == "labelPosition")
{
invalidateDisplayList();
}
}
}
(五)定义好渲染器后,可以调用生成图形了
<mx:LineChart id="costChart" width="100%" height="100%" dataProvider="{costData}"
showDataTips="true" seriesFilters="[]"
dataTipRenderer="utils.MyDataToolTip">
<mx:horizontalAxis>
<mx:CategoryAxis categoryField="Month"/>
</mx:horizontalAxis>
<!-- 设置左边纵向坐标 -->
<mx:verticalAxis>
<mx:LinearAxis id="vaxis" />
</mx:verticalAxis>
<mx:verticalAxisRenderers>
<mx:AxisRenderer axis="{vaxis}" width="2" tickPlacement="inside" >
<mx:axisStroke>
<s:SolidColorStroke alpha="1" color="#BBCCDD" caps="square" weight="4" />
</mx:axisStroke>
</mx:AxisRenderer>
</mx:verticalAxisRenderers>
<mx:series>
<!--去年-->
<mx:LineSeries id="lastSeries" displayName="{getYearN(-1).getFullYear()}年" yField="field1"
lineStroke="{stroke1}" styleName="regisLineSeries1"
itemRenderer="renderer.SolidColorCircleRenderer"
legendMarkerRenderer="renderer.MarcoLegendMarkerRenderer"
/>
<!-- 今年-->
<mx:LineSeries id="curSeries" displayName="{new Date().getFullYear()}年" yField="field2"
lineStroke="{stroke2}" styleName="regisLineSeries2"
lineSegmentRenderer="renderer.MarcoLineRenderer1"
itemRenderer="renderer.SolidColorCircleRenderer"
legendMarkerRenderer="renderer.MarcoLegendMarkerRenderer"
/>
<!--明年-->
<mx:LineSeries id="tomSeries" displayName="{getYearN(1).getFullYear()}年" yField="field3"
lineStroke="{stroke3}" styleName="regisLineSeries3"
lineSegmentRenderer="renderer.MarcoLineRenderer"
itemRenderer="renderer.SolidColorCircleRenderer"
legendMarkerRenderer="renderer.MarcoLegendMarkerRenderer"
/>
</mx:series>
</mx:LineChart>
<mx:VBox verticalAlign="top" height="100%">
<mx:Legend dataProvider="{costChart}"/>
</mx:VBox>