function Timeline(props) {
		var tweens, labels;
		// handle old params (tweens, labels, props):
		// TODO: deprecated.
		if (props instanceof Array || (props == null && arguments.length > 1)) {
			tweens = props;
			labels = arguments[1];
			props = arguments[2];
		} else if (props) {
			tweens = props.tweens;
			labels = props.labels;
		}
		
		this.AbstractTween_constructor(props);

	// private properties:
		/**
		 * The array of tweens in the timeline. It is *strongly* recommended that you use
		 * {{#crossLink "Tween/addTween"}}{{/crossLink}} and {{#crossLink "Tween/removeTween"}}{{/crossLink}},
		 * rather than accessing this directly, but it is included for advanced uses.
		 * @property tweens
		 * @type Array
		 **/
		this.tweens = [];
		
		if (tweens) { this.addTween.apply(this, tweens); }
		this.setLabels(labels);
		
		this._init(props);
	}
The Timeline class synchronizes multiple tweens and allows them to be controlled as a group. Please note that if a
timeline is looping, the tweens on it may appear to loop even if the "loop" property of the tween is false.

NOTE: Timeline currently also accepts a param list in the form: `tweens, labels, props`. This is for backwards
compatibility only and will be removed in the future. Include tweens and labels as properties on the props object.
@class Timeline
@param {Object} [props] The configuration properties to apply to this instance (ex. `{loop:-1, paused:true}`).
Supported props are listed below. These props are set on the corresponding instance properties except where
specified.<UL>
   <LI> `useTicks`</LI>
   <LI> `ignoreGlobalPause`</LI>
   <LI> `loop`</LI>
   <LI> `reversed`</LI>
   <LI> `bounce`</LI>
   <LI> `timeScale`</LI>
   <LI> `paused`</LI>
   <LI> `position`: indicates the initial position for this tween.</LI>
   <LI> `onChange`: adds the specified function as a listener to the `change` event</LI>
   <LI> `onComplete`: adds the specified function as a listener to the `complete` event</LI>
</UL>
@extends AbstractTween
@constructor