Если вы управляете всеми событиями, которые должны быть отключены, вы можете попробовать использовать глобальную переменную в качестве «блокировки» - установите ее при запуске анимации (и отключите все события, если обнаружится, что этот флаг активирован) и снимите флажокэто когда он заканчивается.
Javascript не одновременный (поэтому вам не нужно беспокоиться о проблемах синхронизации и наличии «фактической» блокировки), но, возможно, замирания используют setTimeout за кулисами(позволяя другим событиям срабатывать до того, как это будет сделано).Если это так, просто помните, что вам нужно будет использовать обратный вызов onEnd, чтобы правильно определить, когда аним превышает
var lock = false;
function my_event_handler(evt){
if(lock) return; //someone else is using the lock;
//perhaps cancel event propagation as well?
lock = true;
dojo.anim({
...
onEnd: function(){
lock = false;
}
});
}
предостережение: это псевдокод на макушке моей головы.Я давно не использовал анимацию додзё, если вы этого не заметили: P