2012-04-12 19 views
0

前のトゥイーンがas3.0での再生を完了するまで、次のトゥーンアクションを停止する方法はありますか?as3でトゥイーンして次のトゥイーンを停止させ、最後のトゥイーンを終了します。

また、同じオブジェクトで2回発生するようにトゥイーンを停止したいとします。

基本的には、n個のムービークリップ(レンガとして配置)があるコンテナ(ムービークリップ)があります。コンテナをクリックすると、ターゲット(レンガ)が消えます(scaleXとalphaを 'o'にします)。私はどれくらいのレンガが閉じられているかを追跡しています。

しかし、問題は、私が高速のダブルクリックをすると、トゥイーンが2回起こるようです。その数は同じレンガでも増えているようです。この問題を解決する方法。

答えて

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(); 

} 
0

あなたはTweenerを使用してこの問題を回避するために

isTweening()またはautoOverwrite = falseを使用することができます。

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

0

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

問題が発生しているように見えるのは、トゥイーンを何度も開始しているということです。すべてのブロックを同時に縮小する必要がある場合は、おそらくforループを使用し、それぞれにトゥイーンを実行します。

クリックイベントハンドラを完全に削除して再度クリックしないようにするには、そのクリックを一度クリックする必要があります。

TweenMax/LiteはTimelineMax/Liteと呼ばれるものがあります。そのため、タイムラインオブジェクトを同時に合成したり、タイムラインオブジェクトを1つの完全なイベントで待機させることができます。そのイベントが発生すると、クリックが再開されるか、アニメーションが完了した後に何をする必要があるかを実行できます。

TimelineMaxには、逆やtimeScaleのような素晴らしい機能があります。

あなたはいくつかのコードを貼り付けることができますか?それは私たちがあなたを助けるのにも役立ちます。

関連する問題