0

私はベクトル円を持っており、次のことを行うにはどうすればよいですか?

爆発の衝撃波のように見えるように、トゥイーンライトでアニメートしたいと思います。最初はフェードイン(0から.5)してスケーリングされ、合計アニメーション時間の半分に達するとフェードアウトしますが、それでもスケーリングされます(私が何を意味するかを知っているといいのですが)。

TweenLiteを使用してパート1からパート2にスムーズに移行する方法がわからないため、現在はひどいように見えます。パート1の終わりに達するとアニメーションが停止し、突然パート2にジャンプします。

誰かがこの問題で私を助けてくれますか?どうもありがとうございます。:)

アニメーションの合計時間:.75秒スケーリングの合計量:5

part 1 of 2:

TweenLite.to(blastwave, .375, {alpha:.5, transformAroundCenter:{scale:2.23},
            onComplete:blastScaleFadeOut, onCompleteParams:[blastwave]});


part 2 of 2:

private function blastScaleFadeOut(object:DisplayObject, time:Number = .375, scaleVal:Number = 4.46) {

TweenLite.to(object, time, {alpha:0, transformAroundCenter:{scale:scaleVal},
    onComplete:backgroundSprite.removeChild, onCompleteParams:[object]});

}
4

2 に答える 2

1

これらのトゥイーンの管理方法を再考する必要があります。スプライトのスケーリングを 1 つのトゥイーンに配置してから、アルファ トランジションを 2 つの個別のトゥイーンに分割する必要があります。デフォルトでは、Tween の上書きポリシーであるため、これは TweenLite では機能しません。ただし、TimelineLiteトゥイーンをチェーンするために使用するか、トゥイーンにoverwrite:OverwriteManager.NONEプロパティを追加することで、これを変更できます。これらの 2 つのソリューションは機能します。

TimelineLite を使用してトゥイーンを連鎖させる:

var timeline:TimelineLite = new TimelineLite();
timeline.insert(TweenLite.to(blastwave, 0.7, {scaleX: 7, scaleY: 7}));
timeline.insert(TweenLite.to(blastwave, 0.35, {alpha: 0.5}));
timeline.insert(TweenLite.to(blastwave, 0.35, {alpha: 0, delay: 0.35}));

または、トゥイーンの上書きポリシーを変更するだけです:

TweenLite.to(s, 0.75, {scaleX: 7, scaleY: 7, overwrite:OverwriteManager.NONE});
TweenLite.to(s, 0.35, {alpha: 1, overwrite:OverwriteManager.NONE});
TweenLite.to(s, 0.35, {alpha: 0, delay: 0.35, overwrite:OverwriteManager.NONE});

TweenLite の OverwriteManager と tween の上書きについて。

余談ですが、爆発を 0.7 秒スケールする場合は、アルファ イン、アルファ アウトのプロセス全体を 0.55 秒のように短くします。その方が良く見えます。:]

于 2011-10-30T09:06:29.947 に答える