Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como consertar esse código de forma que ele rode?

Olá pessoal, tudo bem?

Logo no início, no primeiro exercício referente a criação do sprite, eu abstraí a criação do código de uma forma um pouco diferente. Mesmo após ver a resolução do exercício e ter visto a resolução do instrutor ainda estou tentando achar uma forma fazer meu código funcionar e gostaria de saber qual foi o erro cometido por mim no código abaixo:

Esta foi minha função createSprite:

function createSprite(objectSprite) {
  var sprite = {
      "objeto": $(objectSprite),
      "sprite" : ['frame1', 'frame2', 'frame3', 'frame4', 'frame5', 'frame6',
                  'frame7', 'frame8', 'frame9'],
      'actualSprite': 'zero',
      "nextSprite": function() {
        if (this.actualSprite === 'zero') {
          this.objeto.addClass(this.sprite[0]);
          this.actualSprite = this.sprite[0];
        } else {
          for (var i = 1; i < this.sprite.length; i++) {
            this.sprite = i;
            this.objeto.removeClass(this.sprite[i-1]);
            this.objeto.addClass(this.sprite[i]);
          }
        }
      }
  };
  return sprite;
}

Essa foi a minha instância do objeto:

var sprite = createSprite(".sprite");

Este é o código que chama a função .nextSprite():

setInterval(sprite.nextSprite(), 1000);

Gostaria de saber o que há de errado com meu código porque não sei mais como posso fazer pra ele rodar.

Att,

2 respostas
solução!

Veja o seguinte código:

setInterval(sprite.nextSprite(), 1000);

A função setInterval espera receber uma função e o que você esta passando como parâmetro é o retorno da função sprite.nextSprite(), aliás, a função não retornada nada.

No vídeo e na explicação o código do teste esta correto, veja:

   var sprite = createSprite('.sprite');
        setInterval(function () {
            sprite.nextFrame();
        }, 500);

Agora, a função setInterval chamada uma função anônima que ao ser chamada invocará o método sprite.nextFrame().

Lembre-se, você é livre para criar uma implementação, mas sua API, os nomes dos métodos e a maneira de executar precisam seguir o proposto no curso.

Sucesso e bom estudo!

OK! Obrigado!