使用Tween Class AS3从中心点缩放

时间:2012-12-14 20:02:41

标签: actionscript-3 flex flash-cs5

我需要使用Tween类AS3从它的中心点缩放动态文本框。

基本上,我需要在300毫秒左右缩小到50%......完成后我想再次放大到100%并停止动画。

我尝试将中心点设置为文本框的中心,但它始终从左侧缩放。

我一直在努力学习Tween类的基础知识,我相信它缺少一些好的属性和方法,比如greensock!

谢谢。

title_txt.text = "Text";

var textScaleX:Tween;
var textScaleY:Tween;

title_txt.addEventListener(MouseEvent.MOUSE_OVER, scaleObj(1,2, 1));

function scaleObj(startUp:int, endUp:int, duration:int){
    textScaleX = new Tween(title_txt, "scaleX", Strong.easeInOut, startUp, endUp, duration, true);
    textScaleY = new Tween(title_txt, "scaleY", Strong.easeInOut, startUp, endUp, duration, true);
}

2 个答案:

答案 0 :(得分:1)

文本域的oringin将位于左上角。但是,您可以计算左上角在比例为50%的位置以及x和y位置的补间以及scaleX和scaleY值。

快速计算50%x和y就像是:

50%x = 100%x位置+(100%文本字段宽度)/ 4

50%y = 100%y位置+(100%文本字段高度)/ 4

编辑:以下是代码中的计算结果:

var targetScale:Number = .5;    //scale 50% but any other scale would work here as well
var targetX:Number = title_txt.x + (title_txt.width - title_txt.width * targetScale) / 2;
var targetY:Number = title_txt.y + (title_txt.height - title_txt.height * targetScale) / 2;

我使用自己的补间类,所以我不确定如何使用Adobe补间类或TweenLite类来实现它,但是如果你将这些数字粘贴到任何补间类中的文本字段(或任何包含它的对象)这个问题的左上角)将围绕中心点进行缩放。

答案 1 :(得分:0)

补间的第1号提示:

  • 不要使用adobe补间课程:他们的功能不够好。

使用TweenLite:它更易于使用,并具有更多功能。

我意识到这不是你问题的真正答案,但其他人已经涵盖了这一点。