Most of my charts are defined in MXML, but have dynamic portions (eg. the
series list might be built dynamically).

On Wed, Mar 17, 2010 at 1:19 PM, netdeep <[email protected]> wrote:

>
>
>
> Thanks for the reply. I was really hoping the new builds would fix the
> problem but they didn't. Even if they had, both 3.4 and 3.5a exhibit another
> bug which ruins my app. Whenever I refresh the data, the chart goes into
> some weird loop, redrawing its axis labels over and over again which makes
> them flash.
>
> Was your chart done in actionscript? I wonder why it worked for you. There
> is definitely a bug in there somewhere though. I never had any problems
> before this.
>
>
> --- In [email protected] <flexcoders%40yahoogroups.com>, Richard
> Rodseth <rrods...@...> wrote:
> >
> > 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 <rrods...@...> 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 <deep...@...> 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