Smokescreen — «Flash-плеер, написанный на Javascript»

http://smokescreen.us/
  • Перевод
Увидел недавно топик-ссылку Smokescreen — конвертер flash в html5\js, решил сделать перевод той информации, которую я уже читал в сети про этот новый инструмент. Если коротко: Smokescreen — новый проект с открытыми исходниками, направленный на преобразование Flash в JavaScript/HTML5 для лучшего взаимодействовия с веб-страницей там, где раньше это было невозможно.
С его помощью вы можете расширить поддержку своего проекта на новые платформы без изучения новых инструментов, Flash автоматически преобразуется в JavaScript/HTML5. Smokescreen будет выпущен под open source лицензией и будет распространяться бесплатно. Стоимость поддержки и обслуживания будет низкой, чтобы вы могли убедиться, что Smokescreen работает именно так, как вам необходимо. Библиотека даст вам широкий выбор инструментов для разработки, включая разработку на JavaScript, без использования ActionScript, и разработку с подключением Flash к HTML-страницам проекта.

Описание проекта от авторов


Вы, вероятно, знакомы с тем, что Adobe Flash не работает на любом мобильном устройстве Apple. Более того, похоже, что Apple никогда не разрешит запуск Flash на iPhone/iPod/iPad.
Эти факты рисуют мрачную картину для интернет-рекламы на мобильных устройствах. Многие люди все еще хотят использовать существующие инструменты Adobe для создания рекламы, и замена этих инструментов иными ради одной единственной платформы (iPhone/IPod/iPad) выглядит глупо. Как рекламная сеть, мы считаем, что интерактивная реклама более привлекательна, чем скучные статические объявления, поэтому нам пришлось выбирать один из вариантов: жить в темноте, в пустынном мире скучных мобильных объявлений или что-то делать.
Мы направляем все усилия Smokescreen там в качестве предварительного прямо сейчас. В будущем мы рассчитываем добавить поддержку большего числа возможностей Flash, исправить ошибки и повысить производительность. Это только начало. Smokescreen в настоящее время поддерживает значительное возможностей анимации Flash 8, потокового звука, звуковые эффекты, некоторые возможности ввода и базовый ActionScript.

Принцип работы библиотеки


Smokescreen Криса Смоака (Chris Smoak), «флэш-плеер написанный на JavaScript», это невероятная вещь. Он работает полностью в окне браузера, считывает файлы SWF, распаковывает их (с помощью чистого JS), извлекает изображения и встроенные аудио-файлы, упаковывает их с помощью base64 и вставляет в HTML-страницу как data:uri, векторная графика собирается в анимированный SVG. В отладчике (Chrome Web Inspector) вы можете увидеть, как SVG изменяется в реальном времени во время проигрывания демо. Smokescreen даже реализует собственный интерпретатор байт-кода ActionScript. [...] Единственное, что меня беспокоит, это производительность библиотеки — она имеет объем 175 KB и более 8000 строк кода, что может привести к проблемам на маломощных мобильных устройствах.

Демо, демонстрирующие работу библиотеки


Демо показывают Smokescreen в действии. Демо без звука сравниваются с их Flash-вариантами на той же странице. Поскольку Smokescreen написан на JavaScript, он работает медленнее, чем Flash-плагин, скорость ограничивается производительностю браузера. Пока мы не применим больше трюков для увеличения скорости, некоторые демо не будут работать с удовлетворительной скоростью на iPad/iPhone/iPod.

Используйте последнюю версию браузера. Smokescreen в настоящее время работает в Firefox 3.6, Chrome 5, Safari 4, и MobileSafari. Существуют известные проблемы с Opera 10.5 оперы, которые будут исправлены. Не работает в IE, несмотря на то, что IE9 выглядит многообещающе.

Анимационные ролики формата swf, отображаемые с помощью Smokescreen

Демо для платформ Win, Mac, и Linux


Анимационные баннеры


Демо для Win, Mac, Linux, iPad, iPhone, и iPod)


Демо для Win, Mac, Linux, и iPad


Видео работы Smokescreen на iPad



Ссылки


При подготовке статьи использовались следующие ресурсы:

Для желающих попробовать


Поскольку официально библиотека еще не представлена, ссылок на нее нет (анонсирован только пре-релиз). В будущем, как отмечалось выше, библиотека будет доступна под open source лицензией. Для ознакомительных целей можно воспользоваться репозиторием Саймона Виллисона, который выложил код библиотеки с пометкой:
Я выложил не сжатую версию (использовалась команда TextMate Bundles -> JavaScript -> Reformat Selection) здесь: http://gist.github.com/418177

Только для ознакомительных целей — код библиотеки еще не является открытым.
Поделиться публикацией
Похожие публикации
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама
Комментарии 34
  • +1
    Довольно интересная разработка, да и тенденции идут к тому, что частоты у мобильных девайсов повышаются, думаю и на мобильных играть будет.
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Причём тут 3G и wap? Имеется ввиду, что процессор не потянет нормальную скорость работы такого кода.
        • НЛО прилетело и опубликовало эту надпись здесь
    • –3
      Боюсь, батарею это будет сажать не меньше, чем сам флеш. Кроме того, насколько мне известно, в HTML5 нет тех же сокетов в том виде, в котором они во флеше.

      В общем, интересная идея, но крайне нетривиальная в исполнении. Могу лишь пожелать удачи разработчикам.
      • +2
        Батарею скорее всего даже сильнее, ведь нагрузка на процессор больше (интерпретатор Action script, работающий внутри интерпретатора Java script), по поводу сокетов — основная задача разработчиков (как рекламшиков) состоит прежде всего в том, чтобы допилить поддержку баннеров, то есть в первую очередь они будут заниматься проблемами графики и текста в smokescreen, низкоуровневые функции скорее всего получат низкий приоритет. Да и вообще, скорее появится полноценная поддержка WebSockets в браузерах.
        • +2
          > Боюсь, батарею это будет сажать не меньше, чем сам флеш
          Думаю, что даже побольше. Ибо SWF файл состоит из уже готовых инструкций для AVM (opcodes), а в случае с JS необходимо все расковырять, переварить и лишь только потом выполнить.

          Говоря о том, что скорость выполнения ограничена только браузером, стоит добавить, что скорость выполнения любой программы ограничена только тем, что ее выполняет =)
          • 0
            Говоря о том, что скорость выполнения ограничена только браузером, стоит добавить, что скорость выполнения любой программы ограничена только тем, что ее выполняет =)

            Безусловно, я бы на месте разработчика сформулировал фразу как «ограничена производительностью аппаратной части, с учетом используемого браузера» — ведь процессор и движок, который парсит JS могут очень сильно отличаться на разных устройствах. В переводе я решил оставить оригинальную формулировку.
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              Есть WebSockets API, в принципе можно использовать его с fallback'ом до чего нибудь более традиционного.
            • НЛО прилетело и опубликовало эту надпись здесь
              • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                Простенькие демо работают быстро, на глаз от флеш не отличишь.
                А вот первое увесистое в FF показывает только медленное слайд-шоу кадра 3 в секунду, к сожалению.
                • 0
                  Я проверял в Chrome 4.1.26 (он официально не поддерживается кстати), в нем мультики притормаживают, но терпимо. А вот баннеры работают наоборот быстрее (на лицо ошибки во временных отрезках, или при конвертации или при самом отображении), один из баннеров полностью прокрутился за 1,5 сек.
                  • 0
                    ДА когда-нибудь и покруче все будет, никто не спорит. Просто применительно к бытовому рассмотрению (я пользуюсь FF, в основном) данный продукт пока что не съедобен как конечное решение.
                  • 0
                    В хроме хорошо идёт
                    • +1
                      Давайте все пересядем на хром по этому поводу? :)
                      • +3
                        Почему бы нет? Поводов достаточно.
                    • +1
                      «StrongBad», который в фаерфоксе сильно тупит, в пятом сафари летает. А «Lyris ad», который обгоняет по времени аналогичный флеш, в сафари закругляется чуть позже. Видать дело в реализации яваскрипта.

                      Я конечно за хтмл5, яваскрипт и всё такое, но чую что для девелоперов это выйдет боком. Раньше сделал на флеше и успокоился, а теперь сделал и ещё надо потестить в нескольких браузерах.
                    • 0
                      Огнелис серьёзно призадумался после открытия трёх страниц с роликами
                      • 0
                        Батарею сажает, как и флеш.
                        • 0
                          это говорит только об одном — что бы Джобс не говорил, народу нужен флэш
                          но эта штуковина пока способна показывать только старые тупые баннеры
                          а все мы знаем, что старые тупые баннеры — это самое лучшее и самое нужное из всего флэша, ога
                            • 0
                              вы хотите сказать, что вам удалось запустить tankionline на smokescreen?
                              • –2
                                Я хочу сказать, что старые и тупые баннеры — точно не самое лучшее и не самое нужное из всего флеша.
                                Ссылка приведена в качестве примера.
                                Более того, парсить swf-файлы через js, на мой взгляд, несколько странно. Почему бы сразу не воспользоваться SVG, ведь он поддерживается всеми современными браузерами?
                                • +2
                                  … ок, в следующий раз буду обрамлять посты тэгом <sarcasm></sarcasm>
                          • +3
                            чего только не сделают чтоб и на продукции от Apple рекламу показывать
                            • 0
                              Интересно, а есть что-нить, что переводит Actionscript 3.0 код в Javascript? А то без поддержки такого эта штука всего лишь рисовалка графического файла… как .png отобразить попиксельно… только формат файла другой…
                              • 0
                                Интересно чем она отличается отGordon, не просто так же наверное авторы плодят сущности.
                                • НЛО прилетело и опубликовало эту надпись здесь
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                  • 0
                                    Сложно было бы себе представить такой костыль, будь у Apple чуть-чуть меньше желания бабок…
                                    • 0
                                      подумаешь флеш) можно круче:

                                      берете эмулятор JVM на жаваскрипте
                                      ejohn.org/blog/running-java-in-javascript/

                                      потом берете эмулятор x86 на джаве
                                      javapc.sourceforge.net/home_home.html

                                      запускаете одно под другим

                                      ????

                                      можно в браузере поставить линукс. если дождетесь, конечно)
                                      • 0
                                        Интересно....(Flash/Flex developer) Особенно «Принцип работы библиотеки». Не думал, что swf файлы можно разобрать на лету с помощью JS.

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                        Интересные публикации