私は道場の世界に慣れていないので、これはおそらく私に苦労を与えているばかげた何かです.
私は次のコードを持っています(無関係なものを取り除きました):
define(["dojo/_base/declare", "dojo/fx", "dojo/on"],
function (declare, fx, on) {
return declare(null, {
executeTransition: function (continuation) {
var animation = fx.combine([
fx.slideTo({
duration: 1200,
node: this.node1, // node1 will be a valid node at the moment of execution
left: -this.node1.offsetWidth
}),
fx.slideTo({
duration: 1200,
node: this.node2, // node2 will be a valid node at the moment of execution
left: 0
})
]);
on(animation, "End", continuation);
animation.play();
}
});
}
);
コードをそのまま実行すると、on
行が失敗してUncaught Error: Target must be an event emitter
. しかし、アニメーションなので、すでにイベント エミッターである必要がありますか?
私の問題を解決しようとして行ったいくつかの背景調査:
dojo.fxのリファレンス ガイドでは、 の結果をfx.combine
他のアニメーションと同様に扱います。dojo.fxのAPI リファレンスには、インスタンスを返すとのみ記載されています。
いずれにせよ、Dojo 1.8 アニメーション チュートリアルには、私が実行しようとしているのとまったく同じ例がありますが、後で fx.combine の結果を fx.chain にラップする点が異なります (これは必要ありませんか?)。
そこで私の質問は、Dojo 1.8 を使用して、2 つのアニメーションを並行して実行し、それらが終了したときにコードを実行する方法を教えてください。