]> git.mjollnir.org Git - moodle.git/blob
069ccafce07458fd02fa94b1ae823e87e990bfcd
[moodle.git] /
1 package flare.animate.interpolate
2 {
3         /**
4          * Interpolator for <code>Number</code> and <code>int</code> values.
5          */
6         public class NumberInterpolator extends Interpolator
7         {
8                 private var _start:Number;
9                 private var _end:Number;
10                 
11                 /**
12                  * Creates a new NumberInterpolator.
13                  * @param target the object whose property is being interpolated
14                  * @param property the property to interpolate
15                  * @param start the starting number to interpolate from
16                  * @param end the target number to interpolate to
17                  */
18                 public function NumberInterpolator(target:Object, property:String,
19                                            start:Object, end:Object)
20                 {
21                         super(target, property, start, end);
22                 }
23                 
24                 /**
25                  * Initializes this interpolator.
26                  * @param start the starting value of the interpolation
27                  * @param end the target value of the interpolation
28                  */
29                 protected override function init(start:Object, end:Object) : void
30                 {
31                         _start = Number(start);
32                         _end = Number(end);
33                         if (isNaN(_start)) _start = _end;
34                         _end = _end - _start;
35                 }
36                 
37                 /**
38                  * Calculate and set an interpolated property value.
39                  * @param f the interpolation fraction (typically between 0 and 1)
40                  */
41                 public override function interpolate(f:Number) : void
42                 {
43                         _prop.setValue(_target, _start + f*_end);
44                 }
45                 
46         } // end of class NumberInterpolator
47 }