0

Dojo 1.9 を使用して、次のようなアニメーションを再生しています。

that.fadeOutActive = baseFx.fadeOut({ node: "active-container", duration: 1000, delay: 3000 });
that.fadeInInactive = baseFx.fadeIn({ node: "inactive-container", duration: 1000, delay: 3000 });
coreFx.combine([that.fadeOutActive, that.fadeInInactive]).play();

次のように、イベントでそれらを停止しようとします。

coreFx.combine([that.fadeOutActive, that.fadeInInactive]).stop();

問題は、これによりアニメーションが起動されなくなりますが (これは望ましい動作です)、既に開始されている場合は停止しません (これが問題です)。アニメーションを停止できる場合、どうすれば停止できますか?

編集:私の問題は私が投稿したコードではなく、アニメーションが進行中かどうかを検出することにあったことがわかりました。

4

1 に答える 1

1

dojo/fx::combine()はヘルパー関数であり、dojo/_base/fx::Animation オブジェクトのリストを取得してそれらを結合し、それらの効果がすべて並行して実行されるようにします。この機能を使用すると、複数のノードに影響を与えるアニメーションを同時に生成して実行できます。

ある要素と別の要素coreFx.combineを同時に使用しています。fadeInfadOut

新しい結合アニメーションを作成する代わりに、既存の結合アニメーションへの参照を保存し、その参照を使用して結合アニメーションを停止する必要があります。

that.fadeOutActive = baseFx.fadeOut({ node: "active-container", duration: 1000, delay: 3000 }).play();
that.fadeInInactive = baseFx.fadeIn({ node: "inactive-container", duration: 1000, delay: 3000 }).play();
that.combinedAnim = coreFx.combine([that.fadeOutActive, that.fadeInInactive]).play();

そして後で:

that.combinedAnim.stop();
于 2013-08-11T12:07:31.337 に答える