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.

 
Tagged with:
 
About The Author

Peter deHaan

Peter deHaan currently works for Adobe on the Flex SDK QA team. While not working on Flex, Flash, and ColdFusion applications, Peter enjoys making up bios and writing in 3rd person. Peter's rarely updated blog can be found at blogs.adobe.com/pdehaan/, actionscriptexamples.com, airexamples.com, and coldfusionexamples.com.

6 Responses to Using data effects to animate chart data

  1. AJ Simon says:

    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

  2. B Casaleno says:

    This is my favorite FLEX site. Your examples are succint and easy to follow. Thank you for all newbies trying to pick up FLEX quickly.

  3. Barako Bull says:

    Thanks for the tutorial! it really helped me out.

  4. Siraj says:

    Hi Peter… I am trying to add same effects on LineSeries which I am creating dynamically, but its not giving the desired result… code excerpt:
    var ars:LineSeries = new LineSeries();
    ars.dataProvider = new ArrayCollection(arr);
    ars.yField= “temperature”;
    ars.xField= “time”;
    ars.setStyle(‘showDataEffect’,slideIn);
    ars.setStyle(‘hideDataEffect’,slideOut);

  5. prith says:

    hi Peter,

    if you can see the tooltip for the barchart by default comes in one particular position , i want my tooltip to be on the left hand side of the bar irrespective of the user hovering in any position.

    Thanks …

    • prith says:

      Hi Peter,

      Its kind of a routine for me to check the blogs every now and then for possible solutions …and it has even given a few ..if u have some time can you suggest me how to go with this issue ….

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Anti-Spam Protection by WP-SpamFree