В начале 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) и предложить установить пользователю. Здесь проблемой может быть то, что ссылки на такие версии планомерно удаляются производителем с сайтов. Поэтому давать ссылку на скачивание вкупе с предложением установить возможно уязвимый устаревший продукт, такое себе. Способ может быть актуальным только для десктопных приложений.
Во-вторых, можно перекомпилировать в поддерживаемый видеоформат, как упоминалось ранее. Однако не всем 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
ссылка на оригинал статьи https://habr.com/ru/post/533798/
Добавить комментарий