こんにちは。きんくまです。
BetweenAS3のColorTransformとMatrixのTweenをするときに、
つっこむObjectの表記がめんどいです。
transform:{matrix:{a:mtx.a, b:mtx.b, c:mtx.c, d:mtx.d, tx:mtx.tx, ty:mtx.ty}}}
transform: { colorTransform: { redMultiplier:rm, greenMultiplier:gm, blueMultiplier:bm, alphaMultiplier:am, redOffset:ro, greenOffset:go, blueOffset:bo, alphaOffset:ao } }
なので、MtrixとかColorTransformを渡してあげると、それように変換してくれるクラスを作りました。
package { import flash.geom.ColorTransform; import flash.geom.Matrix; /** * ... * @author KinkumaDesign */ public class BetweenAS3ObjectUtil { public static function getMatrixObj(mtx:Matrix):Object { return {transform:{matrix:{a:mtx.a, b:mtx.b, c:mtx.c, d:mtx.d, tx:mtx.tx, ty:mtx.ty}}} } public static function getColorTransformObj(trans:ColorTransform):Object { var rm:Number = trans.redMultiplier; var gm:Number = trans.greenMultiplier; var bm:Number = trans.blueMultiplier; var am:Number = trans.alphaMultiplier; var ro:Number = trans.redOffset; var go:Number = trans.greenOffset; var bo:Number = trans.blueOffset; var ao:Number = trans.alphaOffset; return { transform: { colorTransform: { redMultiplier:rm, greenMultiplier:gm, blueMultiplier:bm, alphaMultiplier:am, redOffset:ro, greenOffset:go, blueOffset:bo, alphaOffset:ao } } } } } }
使い方はこんな感じ
private function initColorTransformTween():void { var color1:ColorTransform = new ColorTransform(1, 1, 1, 1, -200, 200, 0, 0); var color2:ColorTransform = new ColorTransform(); //こんな感じにつかいます var start:Object = BetweenAS3ObjectUtil.getColorTransformObj(color2); var end:Object = BetweenAS3ObjectUtil.getColorTransformObj(color1); _colorTransTw = BetweenAS3.tween(_colorTransSP, end, start, 1, Quad.easeIn); } private function initMatrixTween():void { var mtx:Matrix = new Matrix(); var hw:Number = _matrixSP.width / 2; var hh:Number = _matrixSP.height / 2; mtx.translate(-hw, -hh); mtx.rotate(Math.PI * 45 / 180); mtx.scale(4, 4); mtx.translate(hw + _matrixSP.x, hh + _matrixSP.y); var mtx2:Matrix = _matrixSP.transform.matrix; //こんな感じにつかいます var start:Object = BetweenAS3ObjectUtil.getMatrixObj(mtx2); var end:Object = BetweenAS3ObjectUtil.getMatrixObj(mtx); _matrixTw = BetweenAS3.tween(_matrixSP, end, start, 1, Back.easeOut); }
久々にwonderflにも投稿しました。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ