script/record_mic/com/eclecticdesignstudio/motion/MotionPath.as
author cavaliet
Wed, 06 Jun 2012 18:31:09 +0200
changeset 11 6cab7e0b1678
permissions -rw-r--r--
flash : update recorder with size and tween.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     1
package com.eclecticdesignstudio.motion {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     2
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     3
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     4
	import com.eclecticdesignstudio.motion.actuators.MotionInternal;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     5
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     6
	use namespace MotionInternal;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     7
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     8
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
     9
	/**
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    10
	 * @author Joshua Granick
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    11
	 * @version 1.2
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    12
	 */
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    13
	public class MotionPath {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    14
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    15
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    16
		public var start:Number;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    17
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    18
		protected var paths:Array;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    19
		protected var totalStrength:Number;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    20
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    21
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    22
		public function MotionPath () {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    23
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    24
			paths = new Array ();
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    25
			start = 0;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    26
			totalStrength = 0;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    27
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    28
		}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    29
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    30
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    31
		protected function addPath (path:BezierPath):void {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    32
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    33
			paths.push (path);
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    34
			totalStrength += path.strength;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    35
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    36
		}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    37
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    38
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    39
		/**
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    40
		 * Creates a motion path using a bezier curve
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    41
		 * @param	end		The position of the end point for the curve
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    42
		 * @param	control		The position of the control point for the curve, which affects its angle and midpoint
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    43
		 * @param	strength		The degree of emphasis that should be placed on this segment . If a motion path contains multiple segments with the same strength, they all receive equal emphasis (Default is 1)
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    44
		 * @return		The new motion path instance
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    45
		 */
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    46
		public static function bezier (end:Number, control:Number, strength:Number = 1):MotionPath {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    47
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    48
			return new MotionPath ().bezier (end, control, strength);
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    49
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    50
		}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    51
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    52
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    53
		/**
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    54
		 * Adds a bezier curve to the current motion path
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    55
		 * @param	end		The position of the end point for the curve
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    56
		 * @param	control		The position of the control point for the curve, which affects its angle and midpoint
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    57
		 * @param	strength		The degree of emphasis that should be placed on this segment . If a motion path contains multiple segments with the same strength, they all receive equal emphasis (Default is 1)
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    58
		 * @return		The current motion path instance
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    59
		 */
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    60
		public function bezier (end:Number, control:Number, strength:Number = 1):MotionPath {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    61
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    62
			addPath (new BezierPath (end, control, strength));
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    63
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    64
			return this;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    65
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    66
		}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    67
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    68
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    69
		MotionInternal function calculate (k:Number):Number {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    70
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    71
			if (paths.length === 1) {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    72
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    73
				return (paths[0] as Object).calculate (start, k);
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    74
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    75
			} else {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    76
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    77
				var ratio:Number = k * totalStrength;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    78
				var lastEnd:Number = start;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    79
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    80
				for each (var path:BezierPath in paths) {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    81
					
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    82
					if (ratio > path.strength) {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    83
						
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    84
						ratio -= path.strength;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    85
						lastEnd = path.end;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    86
						
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    87
					} else {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    88
						
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    89
						return path.calculate (lastEnd, ratio / path.strength);
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    90
						
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    91
					}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    92
					
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    93
				}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    94
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    95
			}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    96
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    97
			return 0;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    98
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
    99
		}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   100
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   101
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   102
		/**
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   103
		 * Creates a motion path using a line
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   104
		 * @param	end		The position of the end point for the line
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   105
		 * @param	strength		The degree of emphasis that should be placed on this segment . If a motion path contains multiple segments with the same strength, they all receive equal emphasis (Default is 1)
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   106
		 * @return		The new motion path instance
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   107
		 */
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   108
		public static function line (end:Number, strength:Number = 1):MotionPath {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   109
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   110
			return new MotionPath ().line (end, strength);
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   111
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   112
		}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   113
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   114
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   115
		/**
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   116
		 * Adds a line to the current motion path
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   117
		 * @param	end		The position of the end point for the line
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   118
		 * @param	strength		The degree of emphasis that should be placed on this segment . If a motion path contains multiple segments with the same strength, they all receive equal emphasis (Default is 1)
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   119
		 * @return		The current motion path instance
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   120
		 */
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   121
		public function line (end:Number, strength:Number = 1):MotionPath {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   122
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   123
			addPath (new LinearPath (end, strength));
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   124
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   125
			return this;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   126
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   127
		}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   128
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   129
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   130
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   131
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   132
		// Get & Set Methods
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   133
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   134
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   135
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   136
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   137
		MotionInternal function get end ():Number {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   138
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   139
			if (paths.length > 0) {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   140
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   141
				var path:BezierPath = paths[paths.length - 1];
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   142
				return path.end;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   143
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   144
			} else {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   145
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   146
				return NaN;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   147
				
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   148
			}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   149
			
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   150
		}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   151
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   152
	}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   153
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   154
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   155
}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   156
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   157
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   158
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   159
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   160
class BezierPath {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   161
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   162
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   163
	public var control:Number;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   164
	public var end:Number;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   165
	public var strength:Number;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   166
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   167
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   168
	public function BezierPath (end:Number, control:Number, strength:Number) {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   169
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   170
		this.end = end;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   171
		this.control = control;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   172
		this.strength = strength;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   173
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   174
	}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   175
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   176
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   177
	public function calculate (start:Number, k:Number):Number {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   178
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   179
		return (1 - k) * (1 - k) * start + 2 * (1 - k) * k * control + k * k * end;
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   180
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   181
	}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   182
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   183
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   184
}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   185
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   186
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   187
class LinearPath extends BezierPath {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   188
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   189
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   190
	public function LinearPath (end:Number, strength:Number) {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   191
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   192
		super (end, 0, strength);
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   193
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   194
	}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   195
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   196
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   197
	public override function calculate (start:Number, k:Number):Number {
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   198
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   199
		return start + k * (end - start);
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   200
		
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   201
	}
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   202
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   203
	
6cab7e0b1678 flash : update recorder with size and tween.
cavaliet
parents:
diff changeset
   204
}