Показать сообщение отдельно
  #7 (permalink)  
Старый 22.03.2011, 15:53
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

ArmagedDance,
думать над алгоритмом-вкладывать таймер на выполнение функции другой в функцию вызываемую по таймеру-это плохая практика-и ведут себя совместно они непредсказумо.причём на разных компах(зависит от навороченности и подобного)-будут вести себя по разному.
я уже назвал причину-причина в очереди(в случае с вложенными она вообще перекосяченая выйдет)-и когда функция может запустить саму себя по новой и соответственно опять запустить таймер-пусть даже таймер выключен уже-это плохой путь
state-сколько раз в очередь становиться за время выполнения вложенной? и от того что таймер остановлен-из очереди выполнение функции по нему никто не убирал.тоже касается и остальных таймеров

http://javascript.ru/tutorial/events...chered-sobytiy
http://javascript.ru/tutorial/events...noe-vypolnenie




var state = setInterval(function() {
var animate = setInterval(function() {-косяк номер раз

var animate = setInterval(function() {

$("#playobject").animate({
left: '+=15px'}, 80);-косяк номер два .анимейт 80 милисикунд и функция его вызывающая тоже 80 милисекунд,но в функции кроме анимейта ещё есть код-итого пока она выполниться пройдёт больше 80 милисекунд,и она не успев отработать уже в очередь станет-так что фиолетово что ты таймер отключаешь после
итого -с учётом анимат - минимум 3 вложенных таймера

а в сочетании с этим -вообще......40 проходов по нему ну ни как в сочетании с остальным кодом не дадут 40 сек,а если это чтото другое по замыслу то это полная.....
var i = 0;
var gameover = setInterval(function() {
if(i==40){
clearInterval(gameover);
clearInterval(animate);
clearInterval(state);
alert("Вы выиграли! Ура!");
}
i++;
},1000);

Последний раз редактировалось dmitriymar, 22.03.2011 в 17:09.
Ответить с цитированием