Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает setInterval в обьекте 
V
    Опции темы
Хоббит
Дата 3.8.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



Код

function Scroll_moveForvard()
{
  if (count < scrollValue)
  {         
    speed = (scrollValue - count) / this.kStop + 1;
    this.position = this.position - speed;        
        
    object.style.left = this.position + 'px';            
    count = count + speed;
  }
  else
  {        
    clearInterval(this.timer);
    this.timer = 0;
  }
}

function Scroll_initMoveForvard()
{ 
  if (this.timer == 0)
  {
    if (this.visibleElement < this.elementCount)
    {
      scrollValue = this.scrollWidth;
      this.visibleElement = this.visibleElement + 1;               
      count = 0;

      object = parentdoc.getElementById(this.scrollBlock);      
      
      this.timer = setInterval(this.moveForvard(), this.timeOut);
    }
  }
}    

var object;
var count = 0;
var scrollValue;
var parentdoc;

  
function Scroll(doc, scrollBlock, elementCount, width)
{
  parentdoc = doc;
  
  this.scrollBlock = scrollBlock;
  
  this.position = 0;
  this.scrollWidth = width;          
  
  this.timer = 0;
    
  this.kStop = 2.5;
  this.timeOut = 50;

  this.elementCount = elementCount;
  this.visibleElement = 1;
  
  this.moveBack = Scroll_moveBack;
  this.moveForvard = Scroll_moveForvard;
  this.initMoveBack = Scroll_initMoveBack;
  this.initMoveForvard = Scroll_initMoveForvard;
/*  this.initMoveTo = Scroll_initMoveTo;
  this.controlBackHover = Scroll_controlBackHover;
  this.controlBackOut = Scroll_controlBackOut;
  this.controlForvardHover = Scroll_controllForvardHover;
  this.controlForvardOut = Scroll_controlForvardOut;*/
}


Так вот по initMoveForvard функция запускается один раз хотя там стоит setInterval все условия внутри метода выполняются ... 
PM MAIL   Вверх
12345c
Дата 3.8.2006, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Надо писать
this.timer = setInterval("this.moveForvard()", this.timeOut);
или
this.timer = setInterval(this.moveForvard, this.timeOut);
если интересует выполнение функции, а не её знчения smile (которое null)
PM WWW   Вверх
vasac
Дата 3.8.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Вообще-то, если нужно выполнение функции в контексте того же объекта, то придется немного поизвращаться:
Код

t = this;
this.timer = setInterval( ( function() { return t.moveForvard(); } ), this.timeOut );


Это сообщение отредактировал(а) vasac - 3.8.2006, 21:00
PM WWW   Вверх
Хоббит
Дата 4.8.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



спасибо за точный ответ... недавно учу javascript так что такие мелочи пока не всосал
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.