Return to Snippet

Revision: 58697
at July 29, 2012 10:07 by burakkirkil


Initial Code
package tr.com.gotoandrock.utils
{
	import com.greensock.TweenLite;
	
	import flash.display.DisplayObject;
	import flash.geom.Matrix;

	/**
	 * Helps 3d tranformation applied target back to normal 2D Matrix and look&feel :)
	 * Should only use tween ends with if z value equal 0;
	 * Attention Please: onComplete and onCompleteParams overrides
	 * @author Burak Kırkıl
	 * 
	 */	
	public class Tween3D
	{
		public static function to(target:DisplayObject, duration:Number, vars:Object):void
		{
			TweenLite.to(target, duration, scaleTargetAndGet2dVars(target, vars));
		}
		
		public static function from(target:DisplayObject, duration:Number, vars:Object):void
		{
			TweenLite.from(target, duration, scaleTargetAndGet2dVars(target, vars));
		}
		
		//////////////////////////////////////////////////////
		// PRIVATE FUNCS
		//////////////////////////////////////////////////////
		private static function scaleTargetAndGet2dVars(target:DisplayObject, vars:Object):Object
		{
			// create vars
			vars.onComplete = backTo2DTarget;
			vars.onCompleteParams = [target, target.transform.matrix];
			// scale target
			target.scaleX = target.width / (target.width + 1);
			target.scaleY = target.height / (target.height + 1);
			return vars;
		}
		
		private static function backTo2DTarget(target:DisplayObject, matrix2d:Matrix):void
		{
			// normalize matrix
			target.transform.matrix = matrix2d;
			target.transform.matrix3D = null;
		}
	}
}

Initial URL


Initial Description
Simple static 3D Deformation Resolver&Helper

Initial Title
Tween3D - 3D Deformation Resolver&Helper

Initial Tags


Initial Language
ActionScript 3