Last Updated: February 25, 2016
·
1.642K
· burakkirkil

Tween 3D Helper AS3 Class

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;
 }
 }
}