Shumway — проект с открытым исходным кодом, инициированный Mozilla, представляющий собой воспроизводитель и рантайм для файлов формата Adobe Flash (SWF), реализованный на JavaScript. Целью проекта было обеспечить выполнение содержимого Flash в среде браузера без использования проприетарного плагина, переводя графику, анимацию и логику ActionScript в элементы и механизмы веб-платформы, такие как HTML, CSS и JavaScript. Проект включал парсер формата SWF, интерпретатор ActionScript 2 и частичную поддержку ActionScript 3, а также средства для рендеринга в canvas и DOM.
Разработка Shumway велась в контексте постепенного отказа индустрии от Flash и перехода к открытым веб-стандартам. В ходе работы команда реализовала ключевые компоненты воспроизведения, но проект не достиг уровня полной совместимости со всеми существующими SWF-ресурсами и был фактически заморожен. Несмотря на это Shumway послужил исследовательской и демонстрационной платформой, показав возможности реализации сложного мультимедийного рантайма на JavaScript и выявив практические ограничения и требования к производительности при эмуляции проприетарных технологий в браузере.
- Интерпретация и частичная реализация ActionScript 2 и частичная поддержка ActionScript 3 для выполнения скриптов из SWF-файлов.
- Парсинг формата SWF и извлечение структур мультимедиа, включая спрайты, графику и таймлайны.
- Рендеринг графики и анимации через HTML5 Canvas и элементы DOM для отображения визуального содержимого.
- Механизмы воспроизведения звука и синхронизации мультимедийных дорожек в браузерной среде.
- Инструменты для отладки и анализа SWF-контента, использованные разработчиками для тестирования совместимости и производительности.
- Исследовательская платформа, демонстрировавшая подходы к миграции Flash-контента в веб-стандарты и ограничения, связанные с производительностью и полнотой реализации.