If you are familiar with the tween library for flash you will enjoy the SilverTween library for Silverlight.
The idea of this library is to generate non uniform animation based on well known algorithm (Bounce, Elastic). Actually silverlight animation like DoubleAnimation are uniform with an acceleration but there is no advanced algorithm. The SilverTween javascript library will dynamicaly create a storyboard that will interpolate the algorithm. You just have to specify the xaml element, the xaml property, the start/end value, the duration and the algorithm. The Supported algotithms are : Elastic, Bounce, Regular strong and back.
new SilverTween (plugin, rootElement, <element>, <property>, <algorithm>, <start>, <end>, <duration>);
The following example show a combinaison of three algorithms.
tweenTranslate = new SilverTween (this.plugin, this.rootElement, "translate", "Y", Bounce.easeOut, -200, 00, 2);
tweenRotate = new SilverTween (this.plugin, this.rootElement, "rotate", "Angle", Elastic.easeOut, 0, 360, 3);
tweenScale = new SilverTween(this.plugin, this.rootElement, "scale", "scaleX", Strong.easeIn, 1, 0, 2);
tweenScale2 = new SilverTween(this.plugin, this.rootElement, "scale", "scaleY", Strong.easeIn, 1, 0, 2);
tweenTranslate.OnCompleted = function () { tweenRotate.Begin();};
tweenRotate.OnCompleted = function () {tweenScale.Begin(); tweenScale2.Begin();};
tweenScale.OnCompleted = Silverlight.createDelegate (this, this.demoTween);
That animate a very simple XAML :
<TextBlock x:Name="Text="Silver Tween !" >
<TextBlock.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" x:Name="scale"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0" x:Name="rotate"/>
<TranslateTransform X="0" Y="0" x:Name="translate"/>
</TransformGroup>
</TextBlock.RenderTransform>
</TextBlock>