Treeswhen I'm loading the children dynamically. So instead of trying to get animated gifs to work (see this example if you are interested) I created a relatively simple
Spinnerclass that draws a circular spinner using just Flex Graphics. The spinner is animated using a Timer. If you set the startImmediately property to true then the animation starts when the spinner component is added to a parent component. And it is always stopped when it gets removed from its parent.
There are also the start(), stop() and running functions to control the spinner manually.
The spinners have a few styles that you can set to customize the appearance:
<ui:Spinner Properties delay="100" startImmediately="false" Styles backgroundAlpha="1" backgroundColor="NaN" spinnerColor="#829AD1" spinnerHighlightColor="#001A8E" spinnerThickness="3" spinnerLineThickness="2" spinnerType="gradientcircle"/>
I've created an example of the four types of spinners in four Trees. Each tree node loads its children after a 2 second delay during which time the spinner is shown, so try expanding each tree (right click to view source):
Let me know if you like them!
Also, make sure you do call stop() on the spinner when you don't need it anymore... otherwise you might notice your Flex app starts to run very slowly like mine did...
** September 28th 2009 Updated **
I've added another example application showing how to show the spinner inside an AdvancedDataGrid control.