Не могу перезапустить setInterval

Я пишу небольшую игру на javascript и моделирую класс аватара.

У меня есть переменная (функция не работает!), Которая постоянно двигает хвост моего аватара.

function avatar(){    
  this.switchTail=setInterval(function (){
    if (ava.getTail() == rainbow)
      {ava.setTail(rainbowUpsideDown);}
    else {
      console.log("wooo,I'm alive");
      ava.setTail(rainbow);}}
  ,300)
  ...
}

У меня с ним проблемы, во-первых, он автоматически запускается при запуске игры. И, во-вторых, я не хочу, чтобы хвост щелкал, когда я нахожусь в меню или на паузе. Поэтому я написал функцию, чтобы убить его.

avatar() { 
  ....

  this.stopSwitchingTail=function() {clearInterval(this.switchTail)}
  ....
}

Но после его убийства, как мне перезапустить SwitchTail?


person Bosiwow    schedule 19.10.2013    source источник
comment
Я думаю, это то, что вы ищете: stackoverflow.com/questions/4328148/   -  person bug11    schedule 19.10.2013
comment
Из вашего вопроса вам просто нужно снова позвонить avator() по его поиску. Также есть большая вероятность, что вы неправильно используете ключевое слово this, судя по этому сегменту кода.   -  person megawac    schedule 19.10.2013
comment
jsfiddle.net/p5nFb   -  person megawac    schedule 19.10.2013
comment
Решение megawac сработало: D, я смоделировал класс аватара с локальной переменной tailInterval и создал this.switchTail и this.stopSwitchingTail, как в jsfiddle;)   -  person Bosiwow    schedule 19.10.2013
comment
Почему-то этот вопрос привлек мое внимание. Я вижу, что @megawac уже предоставил хорошее решение (возможно, вам следует опубликовать его как ответ), но если вам нужно несколько экземпляров Avatar эта скрипка может оказаться полезной.   -  person Moob    schedule 19.10.2013
comment
Я не чувствовал, что понял вопрос достаточно хорошо, чтобы опубликовать ответ. Я немного обновил вашу скрипку @Moob jsfiddle.net/BeUYL/4 только потому, что не имеет статических элементов класса на прототипе меня раздражает. В любом случае, ваше решение подходит к его вопросу лучше, чем к моему - опубликуйте его;) - обновление /3/ я неправильно понял ваш код, лол   -  person megawac    schedule 19.10.2013
comment
@megawac да, так лучше.   -  person Moob    schedule 19.10.2013