Hello group,
Ich have an areachart where I want to add an chartelement as annotation element. My Chart has a horizontal datetime axis and I want to use the datetolocal method in my chart element to place a line at a specified date to my chart. first of all I saw that I get NAN values, if I use the date-Object as attribute with datatolocal. So I experimented a little bit - and found out, that the Unix time (seconds since 1970) is in the correct scale - but around eight years to high. So a little bit of my code - first the chart, second my chart element:
Code:
<!-- some stuff -->
<mx:AreaChart id="myChart"
dataProvider="{timeseries}">
<mx:horizontalAxis>
<mx:DateTimeAxis
dataUnits="months" interval="5"
labelUnits="years"
minimum="{start}"
maximum="{end}"
displayName="Year" />
</mx:horizontalAxis>
<mx:verticalAxis>
<mx:LinearAxis displayName="EUR" />
</mx:verticalAxis>
<mx:series>
<mx:AreaSeries
yField="value" xField="date"
displayName="Values"/>
</mx:series>
<mx:annotationElements>
<myClasses:Deadlines date="{today}"/>
</mx:annotationElements>
</mx:AreaChart>
now the chart element
Code:
package myClasses
{
import mx.charts.chartClasses.ChartElement;
import flash.display.Graphics;
import flash.geom.Point;
[Bindable]
public class Deadlines extends ChartElement
{
private var _date:Date;
public function Deadlines()
{
super();
}
override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void {
var g:Graphics = graphics;
g.clear();
var x:Number = this.chart.dataToLocal(_date.time,0).x;
g.lineStyle(2,0xFF00FF,1.0);
g.moveTo(x,0);
g.lineTo(x,unscaledHeight);
}
public function set date(x:Date):void { _date=x; }
public function get date():Date { return _date; }
}
}
Can anybody help me please?