/**
 * VERSION: 2.1
 * DATE: 2009-09-12
 * ACTIONSCRIPT VERSION: 3.0 (AS2 version is also available)
 * UPDATES AND DOCUMENTATION AT: http://www.TweenLite.com
 **/
package com.greensock.core {
/**
 * Stores information about an individual property tween. There is no reason to use this class directly - TweenLite, TweenMax, and some plugins use it internally.<br /><br />
 * 
 * <b>Copyright 2010, GreenSock. All rights reserved.</b> This work is subject to the terms in <a href="http://www.greensock.com/terms_of_use.html">http://www.greensock.com/terms_of_use.html</a> or for corporate Club GreenSock members, the software agreement that was issued with the corporate membership.
 * 
 * @author Jack Doyle, jack@greensock.com
 */	
	public class PropTween {
		/** Target object **/
		public var target:Object;
		/** Name of the property that is being tweened **/
		public var property:String;
		/** Starting value  **/
		public var start:Number;
		/** Amount to change (basically, the difference between the starting value and ending value) **/
		public var change:Number;
		/** Alias to associate with the PropTween which is typically the same as the property, but can be different, particularly for plugins. **/
		public var name:String;
		/** Priority in the rendering queue. The lower the value the later it will be tweened. Typically all PropTweens get a priority of 0, but some plugins must be rendered later (or earlier) **/
		public var priority:int;
		/** If the target of the PropTween is a TweenPlugin, isPlugin should be true. **/
		public var isPlugin:Boolean;
		/** Next PropTween in the linked list **/
		public var nextNode:PropTween;
		/** Previous PropTween in the linked list **/
		public var prevNode:PropTween;
		
		/**
		 * Constructor
		 * 
		 * @param target Target object
		 * @param property Name of the property that is being tweened
		 * @param start Starting value
		 * @param change Amount to change (basically, the difference between the starting value and ending value)
		 * @param name Alias to associate with the PropTween which is typically the same as the property, but can be different, particularly for plugins.
		 * @param isPlugin If the target of the PropTween is a TweenPlugin, isPlugin should be true.
		 * @param nextNode Next PropTween in the linked list
		 * @param priority Priority in the rendering queue. The lower the value the later it will be tweened. Typically all PropTweens get a priority of 0, but some plugins must be rendered later (or earlier)
		 */
		public function PropTween(target:Object, property:String, start:Number, change:Number, name:String, isPlugin:Boolean, nextNode:PropTween=null, priority:int=0) {
			this.target = target;
			this.property = property;
			this.start = start;
			this.change = change;
			this.name = name;
			this.isPlugin = isPlugin;
			if (nextNode) {
				nextNode.prevNode = this;
				this.nextNode = nextNode;
			}
			this.priority = priority;
		}
	}
}