Как стать автором
Обновить

Поиск альтернатив для Flash Player на примере реального проекта

Adobe Flash
Надпись “Поддержка Flash Player будет прекращена в декабре 2020 года” в браузере способна вызвать различные эмоции у пользователей, начиная от облегчения, что де уязвимости решены, до осознания некоего предательства со стороны технологических гигантов. Первые, возможно, пострадали от вируса, некогда внедренного на сомнительном сайте, последние же вынуждены прикрывать проект, почти полностью зависящий от этой технологии.
В начале 2016 года, когда перспективы Flash все еще были радужными, автору этой заметки пришла идея реализовать контент сайта с применением встраиваемых SWF-роликов. К тому времени уже были звоночки, наподобие претензий Стива Джобса к Adobe в 2010, заключающиеся в том, что проприетарный продукт не достоин быть внедрен в проприетарные ОС. Здесь должен быть ироничный смайлик. В то время мобильный трафик не был таким заметным (а трава зеленее) и всерьез такие заявления мало кто воспринимал.

Тем более Flash использовался на многих сайтах, играх, в десктопных приложениях и видео-/аудио- проигрывателях. Сфера его применения была очень разнообразна, а уровень вхождения в ActionScript 2 на уровне детских эмуляторов программирования. После AS 3 все стало серьезно и многие стратегические игры в соцсетях того времени это подтверждают. Помянем их вместе с флешом. Ладно, не будем о плохом.

Действительно, у владельцев сайтов было достаточно времени, чтобы… что? Перейти на HTML5, WebGL и WebAssembly. Опишу ситуацию подробнее. Есть два сайта, на одном более сотни flash-роликов, на втором же их около полутора тысяч. Это небольшие ролики, включающие в себя анимацию, навигацию и прочие необходимые причуды. Почти все они сделаны руками. Сказать, что мне было жаль с ними расставаться — ничего не сказать. Но мысль о том, чтобы конвертировать их все в HTML5, как рекомендовалось, казалась безумной. Ни один протестированный мною конвертор, декомпилятор или встроенный в программу Flash метод не давал необходимого результата.

Стоит учесть, что мало было перевести проект на современные аналоги, его еще нужно развивать и обновлять. С Flash это мог делать обычный дизайнер, c HTML5, WebGL и WebAssembly нужна как минимум парочка программистов. Инди-проекты после такого могут только отдыхать.

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

Небольшое отступление – на этих сайтах имитируется работа определенной графической программы, где вместо выполнения команд дается их описание. Например, по 3DS Max уже существовал официальный учебник, но не настолько интерактивный и удобный, чем упомянутый ранее (как его автор, могу преувеличить достоинства). Забегая вперед, в официальном учебнике тоже были флеш-ролики, и перед написанием этой статьи заглянул в него, чтобы узнать как решена проблема. Она решена очень оригинально – большая часть их просто выпилена, остальные переконвертированы в видео.

Итак, какие общие решения могут быть использованы после декабря 2020?

Во-первых, так как в последние версии Flash Player вставлен таймер работоспособности, делая его простым смертным, то необходимо найти версию, где такого таймера нет (v32.0.0.371) и предложить установить пользователю. Здесь проблемой может быть то, что ссылки на такие версии планомерно удаляются производителем с сайтов. Поэтому давать ссылку на скачивание вкупе с предложением установить возможно уязвимый устаревший продукт, такое себе. Способ может быть актуальным только для десктопных приложений. Судя по этому заявлению от Adobe time bomb установлена на 13 января 2021.

Во-вторых, можно перекомпилировать в поддерживаемый видеоформат, как упоминалось ранее. Однако не всем Flash-роликам, особенно интерактивным, это подойдёт.

В-третьих, обратиться к готовым решениям (не упоминая заброшенные GNU Gnash и Mozilla Shumway). Ранее была надежда, что они появятся, ближе к прекращению деятельности Flash Player. И они появились. Хорошее решение – это Ruffle, пока что единственное подходящее из найденных. Поддержка только AS 1/AS 2 на 70%. Он бесплатно распространяемый, лицензия MIT/APACHE. Из недостатков – некрасивое оформление и некоторые глюки воспроизведения, которые мне удалось исправить при размещении на сайте. Установка очень удобная, вставляется JS-скриптом. По сути Ruffle Player это эмулятор Adobe Flash Player, написанный на языке Rust. Проект может собираться как в форме отдельного приложения, так и компилироваться в формат WebAssembly для встраивания на web-страницы в изолируемом окружении браузера. Это оказалось решением для моей проблемы и ещё многих разработчиков. Стоит только упомянуть, что разработчики Ruffle сотрудничают с archive.org для сохранения возможности просмотра архивных страниц с Flash-контентом.

Почему же Adobe не выпустило свою версию проигрывателя типа Ruffle, как только запахло жареным? Об этом можно только догадываться. Но, скорее, появятся достойные аналоги и нужно только их дождаться, переждав блокировку на том, что есть. Так что смерть старым флешкам в вебе объявлена преждевременно. По крайней мере 2021 год все еще дает надежду.

Ссылки на ресурсы:

Ruffle ruffle.rs
Упомянутые переделанные сайты (для общей картины): 3dsmax-book.ru, rhino-book.ru
Версия Flash Player 32.0.0.371 в archive.org (скачать)
Теги:adobe flash playerflash2021
Хабы: Adobe Flash
Всего голосов 6: ↑5 и ↓1 +4
Просмотры17.1K

Похожие публикации

Моушн дизайнер в dating startup
от 45 000 до 75 000 ₽DaterМожно удаленно
UI/UX Designer
от 135 000 ₽Hidden PoolСанкт-Петербург
UX/UI - дизайнер
от 80 000 ₽WazzupМожно удаленно
Дизайнер интерфейсов
до 100 000 ₽NeuroCityМосква
Designer
от 600 до 1 200 $Profit CenterМожно удаленно

Лучшие публикации за сутки