/ Published in: ActionScript 3
Simple static 3D Deformation Resolver&Helper
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
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; } } }