PDA

View Full Version : Graph animation in dynamically created chart?


bfrancis
05-22-2008, 03:54 PM
Hi
I am trying to get an actionscript chart to animate on creation, but to no avail!

The function is:

public function drawCahart:void () {

var chartColumns: Number = XML(slidesXML.lastResult).slide[slideSelection.selectedIndex].graphData.@chartColumns;
var seriesArray:Array = [];
for(var counter:Number=0;counter<chartColumns; counter++){
series = new ColumnSeries();
series.displayName = XML(slidesXML.lastResult).slide[slideSelection.selectedIndex].graphData.row[0].elements()[counter+1].name();
series.setStyle("showDataEffect",slideIn);
series.yField = XML(slidesXML.lastResult).slide[slideSelection.selectedIndex].graphData.row[0].elements()[counter+1].name();
series.id="columnSeries"+counter;
seriesArray[counter]=series;
}
categoryAxis = new CategoryAxis;
categoryAxis.title=XML(slidesXML.lastResult).slide[slideSelection.selectedIndex].graphData.@categoryField;
categoryAxis.categoryField = XML(slidesXML.lastResult).slide[slideSelection.selectedIndex].graphData.@categoryField;
chart = new ColumnChart();
chart.horizontalAxis=categoryAxis;
seriesHead = new Series();
var seriesArrayLength: Number = seriesArray.length;
for(var counter2:Number=0;counter2<seriesArrayLength; counter2++){
seriesHead.addChild(seriesArray[counter2]);
}
chart.series=seriesArray;
categoryAxis.dataProvider = XML(slidesXML.lastResult).slide[slideSelection.selectedIndex].graphData.row;
chart.dataProvider = XML(slidesXML.lastResult).slide[slideSelection.selectedIndex].graphData.row;
chartHolder.addChild(chart);
}

The MXML is:

<mx:HTTPService id="slidesXML" url="slides.php" useProxy="false" method="POST" resultFormat="e4x"/>
<mx:SeriesSlide id="slideIn" duration="1000" direction="up"/>
<mx:VBox id="chartHolder"/>

and the XML is:

<slides>
<slide label="Demo Chart" data="" type="chart" title="Demonstration Chart">
<graphData categoryField="Quarter" chartColumns="3">
<row Quarter="Q1">
<Quarter>Q1</Quarter>
<Expenses>63</Expenses>
<Revenue>57</Revenue>
<Profit>62</Profit>
</row>
<row Quarter="Q2">
<Quarter>Q2</Quarter>
<Expenses>56</Expenses>
<Revenue>68</Revenue>
<Profit>34</Profit>
</row>
</graphData>
</slide>
</slides>

The XML is called in with an application initialise call of slidesXML.send();

What's stumping me is just the animation - the graph is created, just no SeriesSlide.

I have tried calling the XML at varying stages of the graph creation.

Any ideas would be appreciated!

Thanks
Ben