Есть следующий скрипт ниже (упрощенный). Подскажите, как в нем полностью остановить animate и state из gameover?
animate заставляет двигаться объект, state - проверяет состояние в определенный момент после переноса объекта мышью и вызывает движение снова, gameover - останавливает игру по истечении определенного времени.
var state = setInterval(function() {
var animate = setInterval(function() {
$("#playobject").animate({
left: '+=15px'}, 80);
$("#playobject").mousedown(function(event){
$(this).stop();
clearInterval(animate);
});
$("#playobject").mouseup(function(event){
$("#playobject").offset().top = event.pageY;
$("#playobject").offset().left = event.pageX;
});
$("#playobject").mouseover(function(){
$("#playobject").css('cursor','pointer');
});
},80);
$("#playobject").mouseup(function(){
clearInterval(animate);
});
},2000);
Скрипт, из которого нужно остановить два верхних таймера:
var i = 0;
var gameover = setInterval(function() {
if(i==40){
clearInterval(gameover);
clearInterval(animate);
clearInterval(state);
alert("Вы выиграли! Ура!");
}
i++;
},1000);
Вроде все работает как надо, но после остановки игры память все равно жрется в диких количествах, особенно в IE. Я подозреваю это происходит потому, что не все таймеры отключаются.