我是 Dojo 世界的新手,所以这可能是一些愚蠢的事情,让我很难过。
我有以下代码(去掉了不相关的东西):
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,我如何并行运行两个动画并在它们完成后执行一些代码?