Tags: flash player
Flash Player 10 и Moonlight 1
Сегодня я решил соригинальничать и рассказать о том, о чем все уже знают, позже других блоггеров.
Ну рассказывать тут, собственно, не о чем. В Adobe Labs появилась бета-версия Flash Player 10, который имеет кодовое название Astro. Так, ерунда. Не стоит внимания, но я все же остановлюсь на некоторых подробностях потому как ну это просто срыв башки, да? ![]()
Начнем по порядку:
- Это первый релиз Flash Player’а, который идет сразу на три основные платформы. Я не линуксоид (пока), но многие радуются, что теперь Flash Player поддерживает и Ubuntu. А я по глупости считал, что и раньше поддерживал. Ну да ладно.
- Про Open Screen Project я уже писал. Это я к тому, что данный плеер уже будет с открытым форматом SWF-файлов и API. То есть нас могут ждать опенсорсные реализации Flash Player 10.
- Обновленный FileReference. Мне очень нравилась в Silverlight 2 такая фича, что пользователь может загружать файлы с локального диска (изображения, например) в плагин напрямую, без использования сервера. И, понятное дело, отобразить. Чтобы не гонять изображения туда-сюда. Теперь это позволяет делать и Flash Player. Мало того, он позволяет и сохранять файлы на локальную машину. Скриншоты, например. И еще кое-что, о чем ниже. В общем, фича, которую все давно ждали.
Работа с текстом. Ну здесь можно говорить часами. Самое главное - это новые возможности макетирования текста. Теперь мы можем делать многоколоночный текст, который будет автоматически перетекать из одной колонки в другую (из одного блока текста в другой). Мало того, мы можем редактировать и выделять текст в такой многоколоночной/многоблочной верстке как если бы это был сплошной текст. Мало того текст теперь может включать в себя таблицы и изображения в любом месте.
Пример многоколоночной верстки во Flash Player 10 “Astro”Но и это еще не все. Теперь Flash Player поддерживает любое направление текста (слева направо, справа налево, в колонку). И все это в одном и том же тексте. То есть интернационализация рулит.
Кстати, небольшое лирическое отступление по поводу интернационализации и локализации (i18n и l10n). Оказывается, что решение вопроса с текстом справа налево еще не весь круг задач по локализации приложений для культур с таким начертанием. С удивлением узнал, что необходимо также менять местами всякие панельки и колонки таблиц. Весело.
Но вернемся к тексту. Также улучшается работа с системными (невстроенными) шрифтами (дальше мы поймем почему). Они поддерживают все то, что раньше было доступно только встроенным: возможность вращать на произвольный угол, изменять прозрачность, антиалиасинг, возможности которого улучшились для всех шрифтов (движок Saffron обновился до версии 3.1), также как и производительность сглаживания.
Поддержка протокола UDP. В далеком 2006-м (как быстро бежит время!) Adobe втихую купила компанию Amicima, чьи разработки и легли в основу этого нововведения. Разработки этой фирмы открывают возможности использования p2p во Flash-плеере. Подробнее можно прочитать тут. Ну а если по сути, это огромное море возможностей. Это и возможность использования VoIP напрямую между клиентами, возможность, соответственно, чата, обмена данными и изображениями, совместная работа (тот же Whiteboard). И такие решения станет делать намного проще! И новый FileReference с сохранением данных тут как раз наготове.
Эти же разработки используются в расширениях по работе с видео (протокол RTMFP (Real Time Media Flow Protocol)). Этот протокол более эффективен (как по скорости, так и с точки зрения трафика), а также всегда поддерживает шифрование.
Перейдем к тому, отчего все писают кипятком, а лично я вполне равнодушен. 3D эффекты. Теперь для визуальных объектов появляется дополнительна ось, что позволяет трансформировать их в трехмерном пространстве. И, что самое интересное, с сохранением всех интерактивных возможностей. То есть мы можем в трехмерном пространстве представлять как контролы, так и целые экраны с контролами, равно как изображения и видео (с возможность, понятное дело, им управлять). Так как это реализовано на уровне среды исполнения, то производительность, конечно, приличная. А это влечет за собой обновления трехмерных движков, кучу пионеров, которые от слов “три дэ” становятся фиолетовыми в крапинку и готовы идти за вами хоть на край света. Ну и, понятное дело, кучу игрушек. В общем, just for fun (хотя не только).
Нативное 3D во Flash Player 10 “Astro”Ну и, ясное дело, трудно было бы трансформировать пользовательские интерфейсы в трехмерном пространстве если бы не нововведения в системных шрифтах, о которых я написал выше.
Также следует заметить, что возможность интерактивной работы с 3D-представлением объектов будет доступна во Flash IDE (которая CS4).
Ко всей это трехмерной вакханалии следует добавить поддержку произвольных пользовательских графических фильтров и эффектов, которые можно создавать на специальном языке с использованием специального инструментария Pixel Bender Toolkit (как говорится, с блэк-джеком и шлюхами
), который раньше тоже неплохо кодово именовался Hydra. Эта же технология используется в фильтрах и эффектах After Effects CS3. Она, по сути, позволяет делать безбашенные эффектные вещи, которые умещаются в 1 килобайт.
Пример использования пользовательских графических фильтров во Flash Player 10 “Astro” (Adobe Pixel Bender)Специалисты в связи с этим привычно упоминают ключевое слово шейдер. В общем, для игрушек самое то (хотя и не только).
- Улучшение в Drawing API, которые надо смотреть в деталях по коду дела, но вкратце, это возможность менять стиль уже отрисованным графическим примитивам (вроде линии) без их перерисовки заново. А также это возможность оперировать отдельными частями отрисовки в рамках одного экземпляра объекта Graphics, что, понятное дело, дает больший контроль, большие возможности и вполне позволит улучшить производительность.
- По части производительности продолжают делаться шаги по аппаратной акселерации графики. Теперь это касается не только полноэкранного видео, но и обычного видео и
аудиографики (растровые изображения, фильтры и режимы наложения). Причем, ежу понятно, для этого не надо ничего специально прописывать в коде. - Поддержка цветовых профилей для всех графических объектов (то есть для всего Flash-приложения). Для особо циничных ценителей.
- Писать стыдно, но добавили. Добавили типизированные массивы в виде типа данных Vector из разрабатываемой спецификации ECMAScript 4. По мне так гордиться особо нечем (давно пора, ибо уже без этого как-то надоело). В общем, повысит удобство кодирования и производительность.
- По части видео я тоже не сильный энтузиаст (но отдаю должное в качестве большого бизенс-потенциала). Добавился динамический стриминг, как возможность менять битрейт потокового видео на лету по мере изменения пропускной способности канала. Понятно, что это должно поддерживаться и соответствующими медиа-серверами, но оно планируется. Выше я уже вкратце рассказал про новый протокол RTMFP как добавление к старичку RTMP.
- Новый высококачественный аудио-кодек Speex Audio Codec.
- Динамическая генерация звука. То, без чего уже скоро не сможет жить Таня Белая. Полагаю, что созданными композициями можно будет обмениваться без использования сервера, а также сохранять на локальный диск. Будет выведена новая порода виртуальных диджеев. Тоже особо циничных.
- Растровые изображения, которые используются во Flash Player’е, значительно увеличили максимальную поддерживаемую размерность. Многацыфр.
- Расширилась поддержка буфера обмена. Теперь можно будет вставлять в приложение форматированный текст и даже, кажется, изображения. Что, в общем-то, очень круто.
- Возможности контекстного меню тоже расширяются. Теперь там будет позволено использовать форматированный текст. Кажется, я все понял правильно

Хотел перечислить лишь наиболее волнующие нововведения, но увлекся и перечислил все. Ну и ладно!
А прочитать все подробно и на буржуйском можно тут. Доступен для скачивания плеер, доступен FAQ, доступны демки с исходниками.
Недоступна Debug-версия новой беты нового плеера. Это обидно. Но остается надежда, которая еще не умерла.
Также имеется возможность уже сейчас экспериментировать в создании демок для нового плеера. Для этого разработчики из Adobe по-быстрому подогнали версию Flex SDK, позволяющую это сделать.
Ну и напоследок немного про Silverlight. Наконец-таки появился релиз первой версии Moonlight - порт Silverlight под Linux. Об этом можно подробнее прочитать на английском и на русском.
В общем, жизнь идет полным ходом. А что интересного у вас? ![]()
Еще немного о проприетарности
Кстати, касательно сегодняшней революционной новости. Обнаружил вчерашнюю статью на ZDNet.co.uk, где основатель и глава Mozilla Europe Тристан Нитот (Tristan Nitot) резко критикует Flash Player и Silverlight за их проприетарность.
Сторонник открытых стандартов, он выдвигает следующие аргументы, которые можно добавить в копилку давней статьи:
- Adobe и Microsoft в принципе нельзя доверять потому что они здесь не для славы, а ради денег.
- Пользователи, стесненные лицензионными ограничениями на создание собственных версий виртуальных машин, не могут быть точно уверенными, что Flash Player или Silverlight будут портированы на их платформы и этот порт будет произведен качественно и в срок.
- Если вы являетесь производителем контента, рассчитанного на данные виртуальные машины, и вендор-производитель этих машин вдруг решит конкурировать с вами на этом поле, ему не составит никакого труда внести ограничения на показ вашего контента.
В качестве пути для спасения Нитот предлагает уповать на разрабатываемую спецификацию HTML 5, которая призвана устранить ряд недостатков HTML/CSS/JavaScript, не позволяющих им считаться технологией для создания RIA в соответствии с признаками RIA. В частности, это:
- Интеграция контента, коммуникации и пользовательского интерфейса в одной среде исполнения. Для воспроизведения аудио/видео связка HTML/CSS/JavaScript сейчас использует различные проприетарные решения (те же Flash и Silverlight).
- Возможность работы в оффлайне. Для работы в оффлайне связки HTML/CSS/JavaScript сейчас приходится использовать промежуточные проприетарные решения такие, как Google Gears.
По оценкам Нитота, к 2010-му году спецификация, которая будет включать в себя стандартные возможности воспроизведения аудио/видео, а также возможность работы в оффлайне, будет завершена. И тогда, видимо, можно будет ожидать и первых браузеров, поддерживающих ее.
И вот тут как раз выглядывают минусы проприетарности в виде медленного формирования/реализации спецификаций, вольного их (спецификаций) толкования разными вендорами, что порождает несовместимости, попытка удовлетворить и наших, и ваших, что приводит порой к весьма неудобным решениям, большой разброс в реализации спецификаций разными вендорами, к которым в силу тех или иных причин привязаны пользователи. Но зато есть свобода. И невозможность быстро реагировать на изменения в тенденциях развития бизнеса.
Интересной мне показалась следующая фраза (напомню, что статья была опубликована вчера):
“Flash… is a success, although I don’t think it is [compatible with] the open web,” he said. He added that Adobe should open source Flash and claimed that there was a possibility of this happening if Silverlight becomes a successful rival to it.
То есть типа:
Adobe следует заопенсорсить Flash, и заявил, что это вполне может случиться если Silverlight станет успешным ему конкурентом.
Ну и вот сегодня новость насчет Open Screen Project. Нитот как в воду глядел.
Интересна все же реакция сообщества, выступающего за открытые стандарты, на это событие.
Ну а в конце немного побрюжжу. В последнее время часто можно видеть в русскоязычном лексиконе словосочетания “свободный софт", “свободное ПО". Что в голове людей, это произносящих, является синонимом слов “открытое". На самом деле эти словосочетания являются достаточно безграмотной калькой английских сочетаний навроде “free software", что на самом деле означает “бесплатное ПО". И к свободе никакого отношения не имеющее. Ну а мы все с вами знаем, что бесплатное - не обязательно опенсорсное (пример: Silverlight runtime) и опенсорсное не обязательно бесплатное (пример: Flex Data Visualization Components). Также бесплатное и опенсорсное ПО может заключать в себе ряд серьезных ограничений (пример: открытие части исходного кода платформы .NET). Так что думайте насчет употребления терминов и их переводов на разные языки.
Спасибо за внимание.
Flash Player: революция
Сегодня, 1 мая, в День Весны и Труда, трудящиеся Американщины порадовали нас новыми повышенными обязательствами и перевыполнением плана! Ура, товарищи!
Ну а если серьезно, то Adobe делает четвертый, пожалуй самый серьезный, шаг по пути превращения Flash в открытую платформу. Что это за шаги?
- Adobe вносит исходные коды виртуальной машины ActionScript 3 и JIT-компилятора в проект Tamarin. Спустя некоторое время туда добавляется Tamarin Tracing - вариант AVM для устройств с ограниченными ресурсами.
- Flex и AIR SDK становятся опенсорсными.
- Adobe публикует формат AMF и выпускает в опенсорс BlazeDS сервер.
- Adobe запускает Open Screen Project.
Вот этот четвертый шаг, сделанный сегодня, и является предметом данного поста. Что же такое Open Screen Project? Это новая инициатива Adobe, которая включает в себя:
- Снятие всех лицензионных ограничений и публикация в открытом доступе форматов исполняемых файлов на Flash-платформе SWF и видеоформата FLV/F4V. Если раньше лицензия разрешала создавать программное обеспечение, генерирующее SWF-файлы, но полностью запрещала создавать ПО, этот формат воспроизводящее, то сейчас эти ограничения полностью сняты. Мало того, спецификация SWF 9 и FLV/F4V с сегодняшнего дня публично доступны.
- Также в скором времени станет доступным формат протокола Flash Cast, специально предназначенный для мобильных устройств.
- Ряд вендоров включились в инициативу Open Screen Project по созданию совместимых имплементаций Flash-плеера на различных устройствах (это как крупнейшие производители устройств, так и заинтересованные контент-провайдеры, с акцентом на видео).
- Снитие всех лицензионных ограничений на Flash Player и Adobe AIR со следующего мажорного релиза. Это означает, что приобретая устройство, содержащее такой плеер, вы не будете в том числе платить за лицензию. Также это предполагает свободную редистрибьюцию данных виртуальных машин.
- Публикация API для портирования Flash Player’а и AIR на различные устройства. Этот API призван служить целью создания совместимых версий Flash Player’а и AIR на различных устройствах. Все это касается следующих мажорных версий продуктов (Flash Player 10 и AIR 2).
К чему все это?
Это все к тому, что теперь задачей портирования Flash Player’а на различные платформы и устройства будет заниматься не Adobe, а сами заинтересованные вендоры/разработчики на базе предоставляемых форматов, протоколов и спецификаций. Не очень понятно, что будет с протоколом RTMP, который в основном служит для работы с потоковым видео и о публикации которого сведений пока не было. Трудно создать полностью совместимую имплементацию виртуальной машины если одна из ее частей закрыта. Будем следить.
Еще одной важной особенностью является то, что большинство инициатив будут доступны со следующими версиями виртуальных машин. Это означает, что шансов получить самую последнюю версию на своем мобильном устройстве гораздо больше (меня сильно напрягает FlashLite 2 на моем телефоне, для которого я не могу писать приложения на Flex).
Также нас может ждать множество различных имплементаций Flash-плеера, обладающих разными размерами, производительностью, глюками, дополнительными возможностями. Flash everywhere. Прямо как Java. И слоган:
Write once, debug everywhere!
станет нашей повседневной реальностью.
Каждый сможет на своей шкуре ощутить, насколько хороша или плоха проприетарность..
Среди плюсов можно будет отметить также появление различных реализаций Flash-плеера, которые можно будет гораздо легче встраивать в настольные приложения для создания тех же игр (помните бесконечную эпопею с альтернативным плеером Gnash?? То-то ребята сейчас радуются!).
В общем, нас ждет эпоха великих открытий! Будем смотреть вперед.
Ну и напоследок несколько ссылочек:
- Страница Open Screen Project.
- Замечательный FAQ.
- Пресс-релиз.
- Страничка для девелоперов с обращением Кевина Линча и ссылками на спецификации файловых форматов.
