Sorry, I missed that you'd tried 3.5a. It did fix my problem.

On Wed, Mar 17, 2010 at 8:47 AM, Richard Rodseth <[email protected]> wrote:

> I posted about this recently, but it hasn't shown up.
>
> Turns out there's a bug in DateTimeAxis, fixed in 3.4
>
> http://bugs.adobe.com/jira/browse/FLEXDMV-2043
>
>
> On Wed, Mar 17, 2010 at 5:53 AM, netdeep <[email protected]> wrote:
>
>>
>>
>>
>> I have an app which displays any type of chart based on actionscript class
>> definitions. It can't be done in mxml because the charts get drawn at
>> runtime. It has worked fine until recently. The daylight savings time change
>> has made it go all out of whack. I rebuilt a sample version in mxml however
>> and it displays correctly. I've attempted to mimic this in a hard coded
>> actionscript version as well but it just doesn't work.
>>
>> In the code below, the columnWidthRatio is set to 1.1 so that the columns
>> slightly overlap, but in the actionscript version, the bars are tiny with
>> wide gaps between them. Also, if I set the labelUnits to 'hours', the chart
>> won't work at all. It won't even draw anything, but just times out.
>>
>> I am using Flex 3.3 on a Mac. I've also tried Flex 3.5a but it didn't work
>> with that either.
>>
>> [Bindable]
>> public var DECKER:Array = [
>> {point1:"Tue Mar 16 00:00:00 GMT-0400 2010", point2:6.021350380920805},
>> {point1:"Mon Mar 15 00:00:00 GMT-0400 2010", point2:12.432308140005917},
>> {point1:"Sun Mar 14 00:00:00 GMT-0500 2010", point2:19.558957234168425}
>> ];
>>
>> // actionscript version which doesn't work
>> public function makeDateChart(genericChart:CartesianChart,
>> genericLegend:Legend, chartPanel:ChartPanel, chart:ChartObject):void {
>>
>> // ChartObject is a custom object which holds display information
>> // as well as al the SeriesObjects (see below)
>> var axisList:ArrayCollection = chart.getAxisList();
>> var seriesArray:Array = new Array();
>>
>> var hAxis:DateTimeAxis = new DateTimeAxis();
>>
>> for (var i:int=0; i<axisList.length; i++) {
>> var axis:AxisObject = axisList.getItemAt(i) as AxisObject;
>> if (axis.getID() == "x Axis") {
>> hAxis.labelUnits = "days";
>> genericChart.horizontalAxis = hAxis;
>> }
>> else {
>> // Define vertical axis
>> var vAxis:LinearAxis = new LinearAxis();
>> genericChart.verticalAxis = vAxis;
>>
>> for (var j:int=0; j<axis.getSeriesList().length; j++) {
>> // custom data object which holds data and display settings
>> var ser:SeriesObject = axis.getSeriesList().getItemAt(j) as SeriesObject;
>>
>> var columnSeries:ColumnSeries = new ColumnSeries();
>> // bind data...It doesn't matter if I bind 'pointList' or DECKER to this
>> // either way it doesn't work for columnSeries- it does work for the
>> // mxml object testCol (see prev post for static version of chart)
>> BindingUtils.bindProperty(columnSeries, "dataProvider", this, "DECKER");
>> BindingUtils.bindProperty(colSer, "dataProvider", this, "DECKER");
>> // pointList would be used for the dynamic version
>> // BindingUtils.bindProperty(columnSeries, "dataProvider", ser,
>> "pointList");
>> // BindingUtils.bindProperty(colSer, "dataProvider", ser, "pointList");
>> columnSeries.columnWidthRatio = 1.1;
>> // columnSeries.displayName = ser.name;
>> columnSeries.xField="point1";
>> columnSeries.yField="point2";
>> seriesArray.push(columnSeries);
>> }
>> }
>> }
>>
>> genericChart.series = seriesArray;//.toArray().reverse();
>> genericChart.percentWidth = 100;
>> genericChart.showDataTips = true;
>>
>> var hb:HBox = new HBox();
>>
>> hb.addChild(genericChart);
>> this.addChild(hb);
>> }
>>
>> <!-- mxml version which works -->
>> <mx:HBox backgroundColor="white">
>> <mx:CartesianChart showDataTips="true" id="testCol" >
>>
>> <mx:horizontalAxis>
>> <mx:DateTimeAxis labelFunction="fullTimeLabelFunction" dataUnits="days"/>
>> </mx:horizontalAxis>
>>
>> <mx:verticalAxis>
>> <mx:LinearAxis />
>> </mx:verticalAxis>
>>
>> <mx:series>
>> <mx:ColumnSeries id="colSer" columnWidthRatio="1.1" yField="point2"
>> xField="point1" displayName="points"/>
>> </mx:series>
>>
>> </mx:CartesianChart>
>> </mx:HBox>
>>
>>
>>  
>>
>
>

Reply via email to