1

TweenクラスAS3を使用して、動的テキストボックスを中心点から拡大縮小する必要があります。

基本的には300ms程度で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 値を計算できます。

x と y の 50% を簡単に計算すると、次のようになります。

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;

私は独自の tween クラスを使用しているので、Adobe tween クラスまたは TweenLite クラスのいずれかでこれを実装する方法がわかりませんが、これらの数値を任意の tween クラスに貼り付ける場合、テキストフィールド (または左上に原点がある任意のオブジェクト)コーナー) は、中心点を中心にスケーリングします。

于 2012-12-14T20:37:19.913 に答える
0

トゥイーンの一番のヒント:

  • Adobe トゥイーン クラスは使用しないでください。それらの機能は十分ではありません。

TweenLite を使用: より使いやすく、より多くの機能を備えています。

あなたの質問に対する答えではないことは承知していますが、他の人はすでにそれをカバーしています。

于 2012-12-14T23:07:11.937 に答える