Показать сообщение отдельно
  #12 (permalink)  
Старый 18.08.2012, 10:13
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Andrey_rtv Посмотреть сообщение

Консоль IE ругался на неправильный аргумент
setInterval(this.animate, 5000);

, хотя после подстановки

setInterval(function() {class_this .animate()}, 5000)
- ошибка пропадает, но анимация не появляется.
а Вы догадались правильно.

в функции, которая исполнится через 5 сек, this будет равен window, а this.animate вернёт undefined, и это вызовет ошибку.

тем более, зачем нужен интервал в таком виде, как он есть? функция будет исполняться каждые 5 сек бесконечное число раз.

... анимация не появляется? может, 5 сек слишком много?

попробуйте так
function Start_animation() {

       var change = false;
       var index_img = 0; 
       var class_this = this;
       var interval_id;  //<-----

           this.animate = function() { 
               // ..... 
               if (!interval_id) {
                     interval_id = setInterval(function () {
                     class_this.animate();
                     }, 16); 
               }
// ....
Ответить с цитированием