Вы можете проверить исходный код второй ссылки, которую вы опубликовали. Код хорошо документирован. Вот общее объяснение:
- У вас есть элемент холста, на котором изображена анимация, и изображение спрайта, содержащее все «кадры» анимации.
- У вас есть функция «петля», который вызывается на заданный интервал времени (в нашем случае 1000/30, который равен 33ms)
- Функции очищает холст элемент
- Функция устанавливает область спрайта imgae. Это наш «кадр».
- Функция рисует рассчитанную область спрайта на холсте элемента
Я бы идти об этом по-другому, хотя. По соображениям совместимости лучше реализовать такой вид анимации с помощью простого div. Просто установите образ спрайта в качестве фонового изображения. Затем создайте тот же цикл, который вычисляет значения «background-position», которые соответствуют новому кадру.
+1 хороший ответ. – Jarrod