Показать сообщение отдельно
  #1 (permalink)  
Старый 14.03.2009, 12:44
Nicko
 
Сообщений: n/a

Блокировка передачи управления в setInterval()
Пишу скриптик, толкнулся с проблемой..

Необходимо после вызова функции setInterval() передать управление не сразу, а только по окончании ее выполнения (после вызова clearInerval())..

Подскажите: каким образом можно заблокировать передачу управления??

Вот кусок исходного кода:

Hen = function(game,i) {
  this.name = "Hen #"+i;
  this.i = i;
  this.game = game;
  this.div = null;

  this.timer = -1;
  this.coef = 0;
  this.from = 0;
  this.counter = 0;
}
Hen.prototype = {
  remove: function() {
    var self = this;

    self.animateRemoving();
    self.game.board.removeChild(self.div)
  },
  animateRemoving: function() {
    var self = this;

    self.counter = 0;
    self.coef = 0;
    if (self.timer == -1) {
      self.from = 0;
      self.to = 100;
      self.timer = window.setInterval(function() {self.animate(1)},delay);
    }
  },
  animate: function(k) {
    var self = this;

    self.coef += 0.1;
    self.counter += Math.round(self.coef);
    if (self.counter > 100) {
      self.counter = 100;
      window.clearInterval(self.timer);
      self.timer = -1;
    }
    $style(self.div, {opacity: (self.from + k*self.counter)/100});
  }
}

Последний раз редактировалось Андрей Параничев, 14.03.2009 в 15:07. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием