Я вскрываю исходники PNG анимации
Я приоткрою завесу тайны опытным JS программистам!
https://github.com/Solovei95/libs libanim.js - это анимация как у PNG. Нету deffered. |
Это отличная находка для любого археолога. :D
|
Как я уже говорил:
Тактика боя - две канвы, drawImage. Одна канва отрисовывает след. кадр, другой - берет предыдущий. Используется таймер отдельно. Не используется imageData, что позволяет использовать в "file://". Метод работает только в IE 9 и выше, Firefox, Opera, Google Chrome и Safari. Теоретически кроссбраузерно. Скрипт являет альтернативным решением для PNG анимации. |
Это самый простой код на HARDCORE анимацию.
|
Solovei95,
Хочется признания, а оно никак не приходит? ;) |
libanim.js пришло как-раз из-за APNG. Дело в том, что у APNG помимо delay, есть blend и dispose. Мне так понравился алгоритм, что решил ввести это в канву! Правда есть некоторые поправки:
- delay выражается не двумя числами, а одним. - присутствует comp и opacity. - используется элементы (благодаря чему можно заранее загрузить кадры). |
Gozar,
И вообще мне не совсем понятен твой вопрос! |
У APNG есть целый ряд недостатков:
- Нету глобальной палитры. - Не кроссбраузерность. - Сложен в оптимизации. - Нету параметра типа "композиция" и "прозрачность", хотя есть поддержка альфа-канал. У скрипта больше плюсов, чем минусов... - Можно брать любые PNG картинки. - Это же скриптовая анимация, так ведь? - Получается глобальная палитра. - Доступен не только PNG. - Раз используются элементы, значит можно использовать не только картинки, но и canvas и видео элементы. - А раз можно Canvas, значит можно JPEG с альфа-каналом и т.п. |
И если порезать APNG на кадры, то получим:
- Быстрее загружаться будет. - Можно использовать во всех браузерах, где есть XHR и arraybuffer. - Отображение в Canvas элементе (благодаря чему можно добавить различные фильтры). |
Минусы такой анимации:
- Использует ЦП пользователя. - Не работает в IE ниже 9. - Не работает при отключенном JS. - Canvas элемент. - Недоступность FlashCanvas. |
Solovei95,
Не кажется странным что у тебя больше монолог, чем диалог? А ведь это форум. Поэтому и задал вопрос про признание, т.к. похоже кроме меня на твои посты никто не обращает внимания. |
Gozar, да ладно, чувак крут.
Чувак, ты крут :yes: Тему можно закрывать. |
Canvas пока напрягает, не хочется связываться. Я когда-то делал анимации на Java, запускал как java-апплеты. Точнее они и сейчас в интернете стоят. Программа написана, закачивает картинки в свой архив и работает. С картинками можно делать все, что угодно. Но интереснее оказалось показывать анимацию по чужим картинкам, распределенным в интернете, а java апплетам это не разрешают, только на js можно сделать. И лучше без графики.
|
Виктор Кон, забудь ты уже про свой Java, времена меняются.
|
Часовой пояс GMT +3, время: 18:06. |