1

我需要使用 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);
}
4

2 回答 2

1

文本字段的来源总是在左上角。但是,您可以计算左上角在比例的 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;

我使用自己的补间类,所以我不确定如何使用 Adob​​e 补间类或 TweenLite 类来实现这一点,但如果你将这些数字粘贴在任何补间类中,则文本字段(或任何其原点位于左上角的对象)角)将围绕中心点进行缩放。

于 2012-12-14T20:37:19.913 回答
0

Number 1 tip for tweening:

  • Don't use adobe tweening classes: their functionalities are not good enough.

Use TweenLite: it's easier to use and has more features.

I realise it's not really an answer to your question, but others have already covered that.

于 2012-12-14T23:07:11.937 回答