15
Oct
07

Using data effects to animate chart data

In a previous example, “Animating data changes in a Flex Pie Chart”, we looked at using the SeriesInterpolate effect to animate a pie chart when the data changed.

The following example shows how you can use the SeriesInterpolate, SeriesSlide, and SeriesZoom effects to create different animations.

Full code after the jump.

View MXML

<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/10/15/using-data-effects-to-animate-chart-data/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
        layout="vertical"
        verticalAlign="middle"
        backgroundColor="white">

    <mx:Script>
        <![CDATA[
            private function updateDP():void {
                var str:String = categoryFieldComboBox.selectedItem.data;
                barSeries.xField = str;
                barSeries.displayName = str;
            }
        ]]>
    </mx:Script>

    <mx:SeriesInterpolate id="seriesInterpolate" duration="1000" />
    <mx:SeriesSlide id="seriesSlide" duration="1000" direction="right" />
    <mx:SeriesZoom id="seriesZoom" duration="1000" />

    <mx:Array id="dataEffects">
        <mx:Object label="seriesInterpolate" data="{seriesInterpolate}" />
        <mx:Object label="seriesSlide" data="{seriesSlide}" />
        <mx:Object label="seriesZoom" data="{seriesZoom}" />
    </mx:Array>

    <mx:Array id="categoryFields">
        <mx:Object data="obp" label="OBP" />
        <mx:Object data="slg" label="SLG" />
        <mx:Object data="avg" label="AVG" />
    </mx:Array>

    <mx:ArrayCollection id="arrColl">
        <mx:source>
            <mx:Array>
                <mx:Object name="R Winn" obp=".353" slg=".445" avg=".300" />
                <mx:Object name="P Feliz" obp=".290" slg=".418" avg=".253" />
                <mx:Object name="O Vizquel" obp=".305" slg=".316" avg=".246" />
                <mx:Object name="B Molina" obp=".298" slg=".433" avg=".276" />
                <mx:Object name="R Durham" obp=".295" slg=".343" avg=".218" />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>

    <mx:ApplicationControlBar dock="true">
        <mx:Form>
            <mx:FormItem label="categoryField:">
                <mx:ComboBox id="categoryFieldComboBox"
                    dataProvider="{categoryFields}"
                        change="updateDP();" />
            </mx:FormItem>
            <mx:FormItem label="showDataEffect:">
                <mx:ComboBox id="showDataEffectComboBox"
                        dataProvider="{dataEffects}"
                        change="updateDP();" />
            </mx:FormItem>
        </mx:Form>
    </mx:ApplicationControlBar>

     <mx:BarChart id="barChart"
             showDataTips="true"
             dataProvider="{arrColl}"
             width="100%"
             height="100%">
        <mx:verticalAxis>
            <mx:CategoryAxis categoryField="name"/>
        </mx:verticalAxis>
        <mx:series>
            <mx:BarSeries id="barSeries"
                    yField="name"
                    xField="obp"
                    displayName="obp"
                    showDataEffect="{showDataEffectComboBox.selectedItem.data}" />
        </mx:series>
    </mx:BarChart>

</mx:Application>

View source is enabled in the following example.


1 Response to “Using data effects to animate chart data”


  1. 1 AJ Simon Nov 1st, 2007 at 5:20 am

    it look like you are a flex guy and i am trying to start flexing… i have 6 years experience with Flash and actionscript, so picking this up is not to bad.

    however, i am having trouble with a very basic setup issue. i am trying to develop locally and connect to Coldfusion for the backend on our development server… this keeps Failing, however when i run locally and point to my local services-config file… it runs fine. when i publish to the development server and compile poiting to the development servcies-config file, it fails.

    not sure what i am doing wrong here, but these cool flex apps are not that great if my audience has to come to my office to see them on my local machine :)

    thanks for and help that you can provide

Leave a Reply

This blog is terrible at eating HTML tags. If you plan on posting code/XML, please escape your "<" characters as "&lt;" and your ">" characters as "&gt;".