Js анимацией на html5 canvas. Обзор приложений для создания анимации в HTML5: Adobe Edge, Sencha Animator, Tumult Hype. Ассоциирование анимации с элементом

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

Особенности создания

Современный человек ежедневно получает в среднем 5-6, а порой и до 10 электронных писем. Это значит, что у вас есть всего менее секунды, чтобы успеть привлечь внимание адресата, до того как он перейдет к прочтению следующей корреспонденции. В противном случае ваша рассылка HTML-писем будет абсолютно неэффективной, и вы просто потратите время зря.

Одним из нюансов, увеличивающих ваши шансы на привлечение внимания потенциальных клиентов или другой целевой аудитории, является создание корреспонденции, которая адаптирована к мобильным устройствам. Ведь большинство тех, кому она адресована для просмотра почты, наверняка используют их намного чаще, чем настольные компютеры и ноутбуки.

С этой целью можно применять, например, «отзывчивый дизайн», легко адаптирующийся к размеру экрана.

Каким должен быть шаблон письма

При верстке документа, предназначенного для отправки корреспондентам, следует придерживаться следующих требований:

  • Его следует сделать достаточно узким, т. е. по размерам оно должно не превышать диапазон 500-600 пикселей, что обеспечит корректное отображение текста и другого контента на устройствах любого типа.
  • Нужно использовать достаточно крупный шрифт для всей текстовой информации, так как на iOS-устройствах HTML-письмо будет неудобно читать, если размер шрифта менее 13 пикселей.
  • Элементы, по которым можно сделать клик, должны быть достаточно крупными и изолированными от ближайших ссылок. В таком случае адресат сможет легко их активировать с первой же попытки.

Подготовка

Прежде чем разработать HTML-письмо, следует создать на одном из дисков новую папку и назвать ее, например, «Рассылки». Кроме того, необходимо скачать и установить программу Dreamweaver CS3. Этот продукт от Adobe является одним из достаточно простых инструментов конструирования веб-сайтов и хорошо подходит для разработки рассылочного письма в формате HTML.

Создание и сохранение документа

Перед тем как написать текстовую часть письма, нужно:

  • открыть довольно популярную программу-конструктор HTML-писем Dreamweaver CS3 (DW);
  • создать документ, выбрав в качестве типа «Переходный HTML 4.01»;
  • сохранить файл с расширением «.html»;
  • в верхнем меню найти команду редактирования;
  • убирать галочку из чек-бокса «Использовать CSS вместо тегов HTML».
Пошаговая инструкция

Теперь, рассмотрим, как создать HTML-письмо. Для этого:

  • Последовательно открывают в меню вкладки «Вставить» и «Таблица» и выставляют нужные параметры таблицы. Например, строки — 2, столбцы — 1, ширина — 700, заголовок — сверху. Границы можно выставлять, а можно обойтись без них, указав 0.
  • Формируют заголовок письма. Так как HTML-письмо предназначено для большего числа получателей, поэтому используют оператор , подставляющий нужное имя получателя.
  • В нижнем окне «Свойства» выставляют нужные параметры для шрифта, размера и цвета текста заголовка и
  • «Выходят» из области заголовка. В нижней части экрана выставляют параметры для курсора «По центру» и «По середине».
  • Вставляем готовый текст письма или «пишем» его прямо в программе DW, выбрав нужный тип и а также расположение текста на странице.
Создание гипертекстовых ссылок

Постараемся сделать HTML-письмо более профессиональным и продвинутым. С этой цель скроем в контенте гипертекстовые ссылки. Для этого нужно выделить то место в тексте, которое выбрали в качестве гипертекстовой ссылки. В левом углу в верхней части экрана следует «открыть» соответствующую иконку и вставить свою ссылку в выпавшее окно. При этом нужно не забыть выставить галочку в чек-боксе «_blank», чтобы ссылка открывалась в новом окне, и адресат после ее просмотра не потерял доступ к основному письму.

Как вставить картинки

Обычно письмо в формате HTML завершается контактной информацией, желательно с фото автора или с подходящей тематической картинкой. Ее можно загрузить из интернета или предварительно загрузив в Интернет, так как вам нужен будет URL этого изображения. Лучше всего это сделать посредством одного из бесплатных сервисов.

Для того чтобы оформить такой симпатичный финал:

  • вставляют в нижней части письма, внутрь основной таблицы еще одну с 3 столбцами и параметром для границы 0 пикселей;
  • выставляют курсор в том месте таблицы, где хотят видеть картинку;
  • отмечают в нижнем окне «Посередине» и «По верхнему краю» для каждой секции;
  • выбирают в верхнем меню вкладку «Вставка»;
  • делаем клик по надписи «Изображение» и в выпавшем меню вставляем скопированный нами адрес;
  • нажимаем «Ok» 2 раза.

Просмотр

Теперь, когда вы знаете, как сделать HTML-письмо, следует убедиться, что адресат его увидит в корректном виде. Для этого перед отправкой нужно просмотреть ваше произведение в браузере Dreamweaver CS3. Для этого нужно нажать на иконку с земным шаром в среднем верхнем меню. Если вместо букв на экране появилась абракадабра, то следует выставить в настройках вашего браузера автокодировку.

Кодировка

Из раздела «Проект» и переходят в кодовую часть — «Код». В открывшемся окне выделяют и копируют все, что заключено между тегами и . Сохраняем файл. Далее вставляем HTML-код.

Отправка HTML-письма
  • выбирают либо создаем новое письмо, заполнив строки «Имя» и «Адрес отправителя».
  • заполняют строку «Тема письма»;
  • отмечают в верхнем левом меню HTML-код;
  • вставляют код, скопированный в программе DW-код в большое поле «Источник»;
  • проверяют корректность отображения посредством инструмента «Предпросмотр»;
  • удаляют текстовую версию письма;
  • тестируют его на спам, с помощью одноименной кнопки, расположенной рядом с кнопкой «Отправить».
Несколько популярных шаблонов

Использование фреймворка помогает значительно ускорить процесс создания письма и сделать его более доступным для разработчика, который только еще постигает азы создания веб-документов. Наиболее популярными шаблонами являются:

  • Cerberus . Этот набор так называемых отзывчивых шаблонов позволяет создавать письма, нормально отображаемые как в мобильном приложении Gmail, так и в Outlook. Он позволяет использовать блоки HTML-кода либо по отдельности, либо объединяя их.
  • Ink — это заготовка писем, рассылки которых практически универсальны и совместимы с любыми устройствами и клиентами.
  • Really simple HTML email template. Шаблон позволяет создавать рассылочные письма очень просто и быстро. Правда, у них будет крайне простой дизайн в виде одного столбца, в котором заключен призыв к действию.

Как вставить HTML в письмо

Рассмотрим теперь несколько другую задачу. Чтобы вставить код HTML в электронное письмо, например, gmail используя, как в приведенном ниже примере браузер Google Chrome, следует:

  • нажать на кнопку «F12» или выбрать соответствующую последовательность команд в меню;
  • в открывшемся окне с кодом текущей страницы клиента gmail найти то место, куда должно быть вставлено HTML-письмо, сделать правый клик и выбрать «Edit as HTML».
  • вставить скопированный HTML код;
  • нажать комбинацию двух клавиш «Ctrl» и «Enter».

Для той же цели можно скачать простую в использовнии программу Mozilla thunderbird. С ее помощью можно создать письмо, а потом сначала выбрать пункт «Вставить», а затем «HTML», и вставить туда код своей рассылки.

Инструменты

Вордпрессовский плагин e-Newsletter позволяет профессионально управлять рассылками и абонентами. Причем и то, и другое делается прямо через панель администратора WordPress. Это обстоятельство обеспечивает полный контроль и совершенно бесплатно, что не может не радовать.

Еще один простой инструмент — Bulletproof background images, представляющий собой простой инструмент, который позволяет получить код для фонового изображения создаваемых писем. С его помощью можно сделать корреспонденцию намного красивее. Для просто следует указать URL понравившегося фонового изображения и его резервный цвет, а также должны ли эти параметры применяться ко всему телу HTML-письма или они предназначены только для одной из ячейки таблицы. В результате будет получен готовый код, который требуется скопировать и вставить в свой шаблон.

Теперь вы знаете, как отправить HTML-письмо. Его создание не представляет особой сложности, особенно если пользоваться готовыми шаблонами, в которых в Сети нет недостатка. Поэтому даже те, кто не имеет особых знаний, смогут легко справиться с этой задачей.

Программный код HTML5 позволил веб-разработчикам использовать ресурсы браузера, процессора и оперативной памяти компьютеров пользователей для выполнения сложных задач. Предыдущие версии браузеров и HTML предполагали выполнение большого количества вычислений серверами или принуждали клиентов устанавливать дополнительные плагины или аддоны для просмотра динамического контента сайтов.

Но сейчас скорость взаимодействия с интерактивными страницами, написанными c помощью HTML5, значительно возросла. При работе используется всего несколько файлов с кодировкой ASCII. Кроме этого, HTML5 убирает со страниц двоичные блоки информации в Flash и другом мультимедийном контенте, которые не индексировались поисковыми системами. На данный момент бичом любого SEO-специалиста являются сайты, состоящие только из интерактивного наполнения. Красивая графика и захватывающая анимация приятны для глаз, однако информация на этих страницах остаётся невидимой для поисковых служб, которые должны продвигать сайт. В HTML5 весь контент находится прямо в исходном коде страницы, именно там, куда могут добраться поисковые боты. Оставляя видимым содержание, HTML5 совмещает интерактивность страницы с эффективным SEO.

Обратите внимание на то, что изучение не будет простым, поскольку в языке используется новые коды для динамических компонентов. Для упрощения этой задачи ознакомьтесь с приложениями, о которых пойдет речь ниже.

Создание интерактивной анимации HTML5

Перед рассмотрением приложений для HTML5 необходимо уделить внимание тому, как вообще создаются веб-страницы на этом языке. Существует два разных способа формирования динамического кода. Вы можете использовать JavaScript и JQuery или код CSS3 (Cascading Style Sheet v3) для получения одинаковых результатов. CSS3 и JavaScript, являясь приложениями для редактирования скриптов, выполняют задачи каждый по-своему. CSS3 позволяет задать параметры страницы, такие как фон, цвет текста, настройки динамического взаимодействия с пользователем, прямо в HTML файле. JavaScript выполняет практически те же функции, но предлагает более широкий спектр команд, чем CSS3, на довольно простом синтаксисе.

Веб-дизайнерам, работающим с CSS2, будет легко освоиться с синтаксисом и свойствами CSS3. Рабочие файлы СSS3 обычно меньше по размеру, чем JavaScripts, и ими легче управлять. Использование JavaScript предполагает, что будут существовать как минимум два отдельных файла JQuery, которые необходимо корректировать вместе.

Ещё одним большим преимуществом использования кода CSS3 является то, что контент сайта не будет спрятан глубоко в коде JavaScript, который не индексируется поисковыми службами. Обладая необходимой интерактивностью, страницы, написанные на JavaScript, могут содержать открытый код, но при этом нужно помнить, что некоторые инструменты HTML5, если не уделить этому внимания, будут автоматически помещать определенную часть информации в файлы JavaScript. При использовании CSS3 весь контент можно просмотреть прямо на HTML странице.

Существенным недостатком CSS3 является совместимость с браузерами. На данный момент работу с кодом CSS3 поддерживает только IE9, Firefox 8 и 9, Chrome, начиная с версии 15 и Safari 5.1 и выше. Неудивительно, что Chrome и Safari стараются поддерживать совместимость с CSS3: компании Google и Apple хотят полностью отказаться от использования технологии Flash на своих браузерах для мобильных и настольных устройств. Кроме этого, анимация CSS3 является единственной технологией, которая стабильно работает в операционных системах Android, iOS, BlackBerry OS6.

Приложения, о которых пойдет речь, позволят разработчикам создавать интерактивные анимированные веб-страницы HTML5. Для тех, кто занимался сведением страниц Flash или Silverlight, методология и интерфейс этих приложений покажутся знакомыми.

Adobe Edge

Цена: бесплатно

Платформы: Windows, Mac OS X

Самой новой среди программ этого класса является «Edge» компании Adobe. На данный момент она ещё не вышла официально. Первая альфа-версия (Preview 1) стала доступна в августе 2011 года, а сейчас доступна версия Preview 4 .

Интерфейс Adobe Egde

Edge имеет интересную особенность: эту программу выпустила компания, создавшая технологию Flash, которую и пытается заменить HTML5. Можно надеяться, что Adobe выпустит продукт достойного уровня для создания анимации. И на данный момент дело идет именно к этому. Даже ранние версии приложения Edge зарекомендовали себя как очень мощный инструмент в умелых руках. По уверениям разработчиков, финальная версия программы позволит создавать и корпоративные сайты, наполненные сложным интерактивом, и HTML5-игры с причудливой анимацией, и приложения для мобильных устройств. Работа с Edge в первую очередь рекомендуется опытным аниматорам.

Интерфейс Edge легко варьировать по желанию: панели можно перемещать и изменять в размерах, рабочий интерфейс - полностью сохранять для использования в последующих работах.

Интерфейс Timeline, используемый в Edge, во многом похож на интерфейс других приложений для создания анимации. Панели настроек и управления выглядит практически как в Animator. Однако, в отличие от Animator, рабочие инструменты можно передвигать, изменять их размер, сохранять позиции рабочего пространства для использования в последующих работах. Такой интерфейс дает возможность следить за ходом анимации лучше, чем это происходит у конкурентов Edge.

Например, каждый объект на временной шкале выделен своим цветом для удобства выстраивания объектов в последовательный ряд, чего очень не хватает в Animator и Hype. Также в Edge можно выделять объекты в группы, для задания им одинаковых свойств. Многие по достоинству оценят функцию копирования набора действий и вставки их в нужное место на временной шкале. Опция «Paste Inverted» позволит разработчикам создать зеркальный набор действий нажатием одной кнопки. Это приложение наверняка покажется удобным для разработчиков с его всплывающими окнами, открывающими актуальный код JavaScript для любого элемента и его действия.

Уникальной чертой Edge можно назвать организацию управлением рабочим проектом: после создания файлов HTML и JQuery они могут редактироваться разными пользователями, и, после сохранения в соответствующей папке, Edge обратит внимание на изменения и интегрирует их в проект. Такая функция, по крайней мере, на данный момент, не доступна ни Hype, ни Animator. Просмотреть результат работы позволит встроенный веб-движок WebKit. А для удобства работы с уже созданными страницами предусмотрена возможность импорта существующих страниц HTML и конвертации различных элементов в воспринимаемый для Edge вид.

Для обучения работе с этим приложением можно воспользоваться большим набором обучающего видео и тестовых проектов, расположенных в библиотеке Adobe. И всё же Edge не покажется легкой аниматору-новичку. Опытные аниматоры оценят набор инструментов Edge на твердую пятерку и, по всей видимости, составят основной контингент покупателей этого приложения.

Важно помнить, что на данный момент доступна лишь альфа-версия приложения. Несмотря на то, что пока в Edge не выявлено никаких грубых шероховатостей, это не означает, что они не будут существовать в релизной версии. Так же существует потенциальная возможность, что финальная версия будет обладать меньшим или большим набором функций.

Sencha Animator

Цена: $199

Платформы: Windows (Vista and later); Mac OS X; Linux (32- and 64-bit)

Среди трех приложений, о которых идет речь в этой статье, Sencha Animator является самым старым - первый пре-релиз был анонсирован ещё в октябре 2010 года. Однако этот же факт позволяет дать программе, официально выпущенной в начале 2011 года, статус первопроходца. С помощью Sencha Animator вы сможете сделать довольно сложную анимацию для веб-страницы и наделить её хорошей интерактивностью.

Творить в Animator просто и удобно. Объекты создаются с помощью соответствующих инструментов или благодаря манипуляциям с нужными изображениями и видео-файлами. Ветераны анимации найдут некоторые сюрпризы в панелях опций трансформации и преобразований. Все объекты могут обрабатываться отдельно или совместно с остальными объектами, соединенными цепью. Интерактивность задается с помощью определения действия на клик по объекту. Для этого Animator предоставляет возможность создания нескольких сценариев, таких как открытие другой веб-страницы, проигрывание анимации или запуск определенного кода JavaScript. Общий набор функций Animator меньше по сравнению с Adobe Edge, однако даёт возможность работы с любым существующим кодом JavaScript.

Но вот где Animator действительно отличается от конкурентов, так это в выходных данных, получаемых при создании динамических веб-страниц. В отличие от Edge и Hype, Animator использует код CSS3 для создания страниц. Поскольку технология CSS3 является единственной, стабильно работающей на мобильных операционных системах iOS, Android и BlackBerry OS6, это дает преимущество проектам, сделанным с помощью Animator.

Если вы планируете создавать страницы HTML5 для пользователей мобильных устройств, Sencha Animator будет большим подспорьем.

Если Вы захотите создать свою собственную web-игру, используя элемент Canvas в HTML5, вам нужно будет найти способ управления анимацией спрайтов. В этой статье мы познакомим Вас с HTML5 Canvas анимацией и проведем Вас через процесс создания анимации движущегося персонажа.

Мы собираемся использовать следующий PNG файл в качестве спрайта - источника последовательности фреймов:

HTML5 структура Анимация спрайтов в HTML5 Canvas | сайт К сожалению, ваш браузер не поддерживает технологию canvas // Скрипт будет здесь

Мы создадим canvas для того, чтобы отобразить наши спрайты, и установим ширину и высоту canvas в 100 px. Помните, что, ширина и высота каждого фрейма PNG спрайта равняется 100 пикселям:


Кроме того, не забудьте присвоить нашему canvas элементу id. Для этого мы назвали его «myCanvas» .

И это все, что касается структуры HTML! А теперь, давайте посмотрим на код JavaScript.

JavaScript var width = 100, height = 100, frames = 4, currentFrame = 0, canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); var image = new Image(); image.src = "sprite.png"; var draw = function() { ctx.clearRect(0, 0, width, height); ctx.drawImage(image, 0, height * currentFrame, width, height, 0, 0, width, height); if (currentFrame == frames) { currentFrame = 0; } else { currentFrame++; } } setInterval(draw, 100);

Как видите, в первую очередь в JavaScript мы определяем переменные:

  • width : ширина элемента canvas
  • height : высота элемента canvas
  • frames : всего количество фреймов в спрайте
  • currentFrame : текущий фрейм в спрайте
  • canvas : для доступа к контекстному элементу визуализации
  • ctx : визуализация контекста canvas в 2D формате
  • image : переменная, содержит PNG файл

Чтобы анимировать спрайт, мы должны просто отобразить на экране каждый его фрейм, используя метод drawImage() . DrawImage() - это метод, позволяющий нарисовать изображение или видео в canvas. Ниже показаны синтаксис drawImage() :

Context.drawImage(img, sx, sy, swidth, sheight, x, y, width, height);

Затем, мы пишем проверочное условие, если currentFrame меньше, чем общее количество фреймов, то делаем инкремент (увеличиваем на один) currentFrame. СurrentFrame используется для определения, какой фрейм спрайта должен быть показан на canvas, используя метод drawImage() .

Наконец, мы используем « setInterval() » для выполнения функции рисования каждые 100 миллисекунд.

Это все! Сохраните свой документ и запустите его на поддерживаемом браузере!

Добрались руки мои до Canvas. Посматривал я на него давненько, очень уж он мне в качестве инструмента для графиков приглянулся. Да и неделя Canvas на Хабре поддержала интерес.

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

Канва Тут все просто и стандартно.

< html >
< head >
< title > Animation test
< meta http-equiv ="Content-Type" content ="text/html; charset=UTF-8" >

< body >
< canvas id ="cnv" width ="600" height ="200" > It"s not working!
< select id ="animations" name ="animations" onchange ="changeAnimation(this.value)" >
< option value ="stop" > Stop
< option value ="jump" > Jump
< option value ="bum" > Bum
< option value ="dead" > Dead



Под холстом добавлен Select со списком анимаций для объекта. Объект у меня будет один, хотя алгоритм не подразумевает каких либо ограничений.

Глобальные переменные Теперь перейдем к JS. Здесь мне понадобятся несколько переменных для хранения объектов сцены и возможных анимаций.
//Сократим запись для потомков
function $(id) {
return document .getElementById(id);
}

var сtx = $("cnv" ).getContext("2d" ); //Наша канва
var childs = {}; //Массив объектов сцены
var animate = {}; //Массив анимаций для объектов


* This source code was highlighted with Source Code Highlighter .

В childs будут храниться все объекты сцены с базовыми параметрами. Мы будем пробегаться по массиву и отрисовывать один за другим.
В animate храним для объекта его анимации. Тут можно сделать и по-другому, к примеру в animate храним анимации только для объектов которым они нужны, а для прочих храним информацию по отрисовке в самом массиве childs. В моем варианте каждый объект должен иметь по меньшей мере одну анимацию, если хочет быть отображенным на холсте.

Заполняем массивы Сначала добавим наш объект. Я не стал росписывать параметры, т.к. считаю что для краткости кода можно на этой пойти, да и имена все интуитивно понятные.function initAnimation() {

//Добавляем шарик
childs["ball" ] = {
"at" : "jump" , //Стартовая анимация
"w" : 30, //Ширина объекта
"h" : 30, //Высота объекта
"fw" : 30, //Ширина кадра анимации
"x" : 100, //Положение по горизонтали
"y" : 100 //Положение по вертикали
}

//Добавляем в массив анимации для шарика
animate["ball" ] = {
"jump" : { //Ключ есть имя анимации
"el" : null , //Объект Image
"src" : "images/ball.png" , //Путь к изображению
"step" : 0, //Текущий шаг анимации
"speed" : 3, //Скорость анимации
"curr" : 0, //Счетчик кадров
"steps" : 3, //Количество кадров анимации, считаем от 0
"onend" : null //Функция для вызова по окончании анмации
},
"bum" : {
"el" : null ,
"src" : "images/ball_m.png" ,
"step" : 0,
"speed" : 3,
"curr" : 0,
"steps" : 7,
"onend" : "onBumEnd"
},
"stop" : {
"el" : null ,
"src" : "images/ball_s.png" ,
"step" : 0,
"speed" : 10,
"curr" : 0,
"steps" : 0,
"onend" : null
},
"dead" : {
"el" : null ,
"src" : "images/ball_d.png" ,
"step" : 0,
"speed" : 10,
"curr" : 0,
"steps" : 0,
"onend" : null
}
}

//Идем по всем объектам
for (var o in childs) {

//И по все их анимациям
for (var a in animate[o]) {

//Подгружаем изображения
var img = new Image();
img.src = animate[o][a].src;
//Помещаем объект изобраения в анимацию
animate[o][a].el = img;


* This source code was highlighted with Source Code Highlighter .

Немного поясню. Каждая анимация представляет собой файл со всеми кадрами. На холст я вывожу только часть изображения, соответствующую текущему кадру. Для этого я храню step и steps (количество кадров).

Изображение представляет собой следующее:

Это самое большое изображение, ответственное за самую длинную анимацию «Bum» в 8 кадров.

Speed и curr отвечают за скорость переключения кадров. Я перерисовываю холст каждые 16мс и чтобы кадры сменялись с требуемой скоростью я считаю curr и по достижении speed меняю кадр.

Onend я вызываю по окончании анимации. Здесь мы можем сменить тип анимации - со взрыва на отображение останков или удалить объект из массива. Для этого чуть выше у меня есть функция:

function onBumEnd() {

//Меняем тип анимации на мертый шарик
childs["ball" ].at = "dead" ;
//Сбрасываем счетчик

* This source code was highlighted with Source Code Highlighter .

Анимации Для объекта есть 4 анимации:
Функция для смены анимации Чтобы удобно менять анимации у нас есть Select и функция для него:
function changeAnimation(value) {

//Меняем анимацю на выбранную
childs["ball" ].at = value;
//Сбрасываем счетчик
animate["ball" ].at].curr = 0;

* This source code was highlighted with Source Code Highlighter .

Запускаем Вот и готовы все изображения и массивы, и я запускаю анимацию.
function startAnimation() {

//Запускаем единый таймер
setInterval(function () {

//Чистим сцену
ctx.save();
ctx.fillStyle = "#FFFFFF" ;
ctx.fillRect(0, 0, 600, 200);
ctx.restore();

//Проходим по всем объектам и отрисовываем
for (var o in childs) {

//Смотрим текущую анимацию
if (animate[o]) {

//Берем текущий шаг
var step = animate[o].at].step;

//Рисуем его
ctx.drawImage(
animate[o].at].el, //Объект Image анимации
Math.round(childs[o].fw * step), //Берем текущий кадр, ширина кадра * шаг
0, //Кадры идут один за другим, тут 0
childs[o].w, //Вырез в ширину объекта
childs[o].h, //И в высоту
childs[o].x, //Размещаем по горизонтали на холсте
childs[o].y, //И по вертикали
childs[o].w, //Ширина как у кадра
childs[o].h //Ну и высота
);

//Проверяем счетчик и если достигли speed, переходим к следующему кадру
if (animate[o].at].curr >= animate[o].at].speed) {

//Проверяем, если кадр последний переходим к первому
if (animate[o].at].step >= animate[o].at].steps) {

Animate[o].at].step = 0;

//Кадр последний, значит вызываем функцию, если есть
if (animate[o].at].onend)
window.at].onend]();

}
else animate[o].at].step++;

//Сбрасываем счетчик
animate[o].at].curr = 0;

//Увеличиваем счетчик
animate[o].at].curr++;

* This source code was highlighted with Source Code Highlighter .

В принципе, я думаю из комментариев понятно что за чем идет и как работает. В результате я получил возможность сохранять объекты сцены, динамически задавать анимацию и реагировать на ее окончание.
Поскольку часто объекты в анимации повторяются, то есть смысл использовать childs как массив объектов, по принципу библиотеки.
Конечно есть что улучшить, но на текущий момент я не нашел хорошей статьи на тему анимации и предлагаю свой вариант.

The purpose for designing a website is to entertain a user of that website. Designer designs the web site using various elements that catches the eyes of the viewers. It is not an easy task to design the website beautifully. It takes a lot of time and effort to design beautiful website. Many elements are considered while designing a website. Among those elements, canvas is also one of them. Therefore, the topic of discussion here is Awesome HTML5 Canvas Examples with Source Code.

Canvas is a graphical element that we can use in our website. The use of canvas is generally done to add up the graphics element in the website. The graphical element means, that can be some kind of effect or animations that we can use in games, movies or anywhere.

Use of canvas brings a lot change in the looks of the website. Canvas catches the eyes of the viewer and no matter how many elements are there in the website, the user’s eye firstly goes to the canvas because they are simply awesome and beautiful. Various ways are there to make a canvas. They can be made using various shapes, texts or colors.

Here we have the list of some best examples of canvas that we can find on the internet for free and we can even use them in our website to make our website look awesome. Therefore, the Awesome HTML5 Canvas Examples along with their codes are as follow.

Code and Demo

Code and Demo

Code and Demo

Code and Demo

Code and Demo

Code and Demo

View Code and Demo

View Code and Demo

Kushagra Agarwal’s HTML5 Canvas Particles Web Matrix

Code and Demo

Code and Demo

Code and Demo

Demo and Download

Download and Demo

ARENA5 – HTML5 game by Kevin Roast

Demo and Download

Demo and Code

Code and Demo

Demo and Code

Conclusion
Hence, from the above examples, we may have known about what canvas actually is and how can they be used in the website to make the website look beautiful. It is not an easy task to add such canvas in our website. It takes a lot of time to design them. More than designing, it takes a lot of time to imagine the canvas and only highly creative persons are capable of that. Considering that thing, we have added the examples along with their code so that one can simply use them in their website.

Therefore, this is what we can understand about the canvas and how they are used in the website to give a dynamic look to the website.