0

as3.0で前のトゥイーンの再生が完了するまで、次のトゥイーンアクションの開始を停止するには?

また、トゥイーンが同じオブジェクトで2回発生するのを止めたいです。

基本的に、n個のムービークリップ(レンガとして配置)があるコンテナ(ムービークリップ)があります。コンテナーをクリックすると、ターゲット (ブリック) が消えます (scaleX とアルファを「o」にします)。また、閉じているレンガの数を追跡しています。

しかし、問題は、高速ダブルクリックを行うと、トゥイーンが 2 回発生するように見えることです。また、同じレンガでもカウントが増加しているようです。この問題を解決する方法。

4

3 に答える 3

1

トゥイーンに次ぐトゥイーン

イベントハンドラーを使用して、最初のトゥイーンが完了するのを待ちます。

myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish);

function onFinish(e:TweenEvent):void {

         ... // Call the next tween here

}


ダブルクリックの問題

ボタンがクリックされるとすぐに、ボタンクリックのイベントリスナーを削除します。次のようなものです。

my_btn.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent){

        my_btn.removeEventListener(MouseEvent.CLICK, onClick);

        myTween.start();

}
于 2012-04-12T12:44:58.820 に答える
0

Tweenerを使用して使用できます

isTweening()またはautoOverwrite = falseこれを回避するために。

私はこれらのプロパティ/関数をしばらく使用していませんが、Tweener の何かがこれを簡単に行うことができると確信しています。

于 2012-04-12T12:55:51.017 に答える
0

Tweener を使用している理由は問いません。Greensock の Tweenmax/lite パッケージは、最近の業界標準のようです。

あなたが抱えていると思われる問題は、トゥイーンを複数回開始していることです。すべてのブロックを同時に縮小する必要がある場合は、おそらく for ループを使用して、それぞれのブロックでトゥイーンを実行します。

ただし、一度クリックしてクリックイベントハンドラーを削除し、完了するまでクリックしないようにする必要があります。

また、TweenMax/Lite を使用することをお勧めします。TimelineMax/Lite と呼ばれるものがあり、同時または交互に複数のトゥイーンを合成し、その Timeline オブジェクトで 1 つの COMPLETE イベントをリッスンできるからです。そのイベントが発生すると、クリックを再度アクティブにするか、アニメーションの完了後に必要な操作を実行できます。

TimelineMax には、reverse や timeScale などの優れた機能がいくつかあります。

コードを貼り付けていただけますか?それは私たちがあなたを助けるのにも役立ちます.

于 2012-04-12T19:08:55.647 に答える