Esse último trecho eu não consigo entender para que serve: "return { nextFrame: nextFrame };" Não encontro sintaxe semelhante a essa em lugar nenhum
function createSprite(selector) {
function hasNext() {
return current + 1 <= last;
}
function moveFrame (from, to) {
$el.removeClass(from)
.addClass(to);
}
function nextFrame() {
if (hasNext()) moveFrame (frames[current], frames[++current]);
}
var $el = $(selector);
var frames = [
'frame1', 'frame2', 'frame3', 'frame4', 'frame5',
'frame6', 'frame7', 'frame8', 'frame9'
];
var current = 0;
var last = frames.length - 1;
$el.addClass(frames[current]);
return { nextFrame: nextFrame };
}
<script>
var sprite = createSprite('.sprite');
setInterval(function () {
sprite.nextFrame();
}, 500);
</script>
Não entendo como esse aquele trecho se conecta com este última aqui.