Categories: Flash-platform, FlashLite
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. Об этом можно подробнее прочитать на английском и на русском.
В общем, жизнь идет полным ходом. А что интересного у вас? ![]()
Adobe XML news aggregator
Просто новостишка, но достаточно важная. Кануло в прошлое одно из последних упоминаний Macromedia в виде MXNA (Macromedia XML News Aggregator). Теперь на смену ему пришел Adobe XML News Aggregator. Суть при этом совершенно не изменилась (что радует), а старая ссылка просто редиректится на новую (также продолжают исправно работать старые RSS-каналы).
Думаю, что все в курсе, ну а кто не в курсе, поясню, что этот ресурс собирает фиды с большого количества блогов, посвященных Flash-платформе. Фиды делятся на категории, что позволяет выбрать интересующие темы. Здесь надо сказать, что некоторые изменения все же есть: добавились новые категории.
Больше недели ресурс был недоступен: производились архитектурные изменения, связанные с увеличившимся количеством читателей. Если кого-то интересует суть изменений, он может прочитать в блоге Теда Патрика, который любит большие картинки.
Удачного вам чтения!
Еще немного о проприетарности
Кстати, касательно сегодняшней революционной новости. Обнаружил вчерашнюю статью на 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.
- Пресс-релиз.
- Страничка для девелоперов с обращением Кевина Линча и ссылками на спецификации файловых форматов.
В Мавзолее на Красной площади открывается секретное софтверное подразделение, которое в ближайшие недели выпустит "убийцу" Flash, Silverlight и AIR
Внимание! Исправленный и дополненный вариант FAQ’а находится тут. Он будет поддерживаться в актуальном состоянии.
Данный пост ставит две задачи: рассказать о синдроме попугайства и предоставить небольшой FAQ по некоторым RIA-платформам. Дело в том, что после выхода 25 февраля релиза Adobe AIR 1.0 и после публикации 22 февраля в блоге Скотта Гатри статьи «First Look at Silverlight 2», в которой анонсировалась ближайшая бета Silverlight 2.0 (Beta 1), выпуск которой планируется к ближайшему MIX’у 5-7 марта 2008 г. (больше информации о MIX’08 тут), в «Компьюленте» появилась статья Владимира Парамонова «Microsoft готовит конкурента платформе Adobe AIR». Я не знаю, стоит ли винить Владимира Парамонова в дезинформации, либо он обладает какой-то сверхсекретной инсайдерской информацией из Microsoft (в чем я лично сомневаюсь, но до проверки данного факта осталось меньше недели).
Так или иначе, этот материал с тем же заголовком стали повторять разные околотехнические блоги, демонстрируя тем самым синдром попугайства, когда не думая своей головой некто повторяет ранее услышанное.
Попробуем кратко поставить нужные вопросы и ответить на них, сделав таким образом некий FAQ, проясняющий ситуацию.
Что такое Silverlight?
Silverlight представляет собой браузерный плагин (официально Microsoft Silverlight Runtime), позволяющий создавать насыщенные интернет-приложения (RIA) на базе технологий от Microsoft. Silverlight базируется на декларативном языке разметки XAML, который является сердцем технологии WPF, являющейся частью Microsoft .NET 3.0//3.5. Кодовым названием Silverlight было WPF/E (WPF Everywhere).
Какие версии Silverlight существуют?
Изначально планировался выпуск версии 1.0, нацеленной на представление в сети Интернет насыщенного медиа-контента и спустя какое-то время версии 1.1, обладающей большинством особенностей WPF. Версия Silverlight 1.0 была выпущена 5 сентября 2007. Тогда же была выпущено последнее обновление Silverlight 1.1 alpha. 29 ноября 2007 было официально объявлено, что версия Silverlight 1.1 переименовывается в Silverlight 2.0 ввиду того, что список нововведений столь широк, что тянет на мажорный номер версии. Это также по поводу распространенной в сети попугайской критики Silverlight, которая, якобы, не успела дожить до 1.1, а уже ожидается 2.0. Просто воспринимайте это как переименование. Все просто ![]()
В чем отличие версий Silverlight?
Версия 1.0 не содержит в себе контролов, лэйаутов, а в качестве языка программирования используется JavaScript. Основная возможность - HD-видео. Позиционируется как релиз, направленный на доставку пользователям насыщенного медиа-контента. Версия 2.0 (бывшая 1.1) является достаточно полноценным подмножеством WPF и содержит в себе мощный набор контролов, лэйаутов, сетевых протоколов, классов .Net 3.5 (включая LINQ), а также возможность локального хранения данных (что позволит таким приложениям работать и в оффлайне). Также SL 2.0 обладает богатыми возможностями по кастомизации/скинизации компонент (также, как в WPF). Языками написания приложений могут быть JavaScript, CLR--языки (C#, VB Итд.), DLR--языки (IronRuby, IronPython).
Какие платформы поддерживает Silverlight?
Silverlight 1.0 поддерживает Windows и MacOS. Silverlight 2.0 будет также поддерживать Linux (Moonlight) благодаря партнерскому соглашенияю с Novell
.
Как осуществляется установка Silverlight-приложений?
Silverlight-приложения не нуждаются в установке. Браузерный плагин сам скачивает с сервера необходимые файлы и отображает их. Соответственно, не требуется специальной подготовки файлов для разных браузеров и платформ. Если же у пользователя отсутствует установленный Silverlight-плагин, то вместо приложения он увидит специальный бэйдж, говорящий о необходимости установить плагин и осуществляющий эту установку.
Сколько стоит разработка Silverlight-приложений?
Для разработки Silverlight-приложений доступен бесплатный SDK. Также анонсирован бесплатный инструмент для Visual Studio 2008, который будет доступен даже для бесплатной Visual Studio 2008 Express. Для дизайнеров доступен платный Expression Blend, позволяющий работать с теми же самыми проектами, что и VS, и предназначенный для работы с XAML (подробнее тут). Таким образом, для разработчика существует бесплатный набор инструментов, включая Visual Studio, позволяющий создавать Silverlight-приложения. Все эти инструменты (кроме SDK) доступны только на Windows.
Существует ли у Microsoft кроссплатформенная среда для создания настольных насыщенных интернет-приложений (RIA)?
На данный момент такой технологии у Microsoft .нет, и она пока не анонсирована. Десктопная платформа WPF, с помощью которой можно создавать насыщенные интернет-приложения, доступна лишь на платформе Windows. Silverlight же, являющийся кроссплатформенным, не доступен на десктопе (если не считать непроверенных слухов, нтерпретированных Райаном Стюартом как возможность интеграции базы данных наподобие Google Gears); в любом случае это будет проверено на следующей неделе). Единственной кроссплатформенной платформой от Microsoft, которую можно установить на большое число современных компьютеров, можно считать Microsoft Windows ![]()
Что такое Adobe AIR?
Adobe AIR (Adobe Integrated Runtime), которая имела кодовое название Apollo, представляет собой среду исполнения, позволяющую портировать и создавать веб-приложения, стирающие границу между операционной системой и вебом. Используя существующие навыки, разработчики могут создавать веб-приложения, хорошо интегрирующиеся в десктоп.
Что подразумевается под интеграцией AIR-приложений в операционную систему?
Это подразумевает, что веб-приложения могут быть запущены с рабочего стола (как обычные приложения), иметь доступ к файловой системе, подразумевает ассоциации расширений файлов с приложением (например, запуск нашего AIR-приложения при клике на файл something.smthng), работу приложений в многооконном режиме с родными для операционной системы окнами, возможность перетаскивания файлов из операционной системы, возможность использования Rich Clipboard, возможность использования меню, системного трея, доков (для Маков), контекстного меню, оповещений (всплывающие из трея окошки с информацией о неком событии), локального хранилища данных (включая защищенное хранилище), встроенную базу данных (SQLite).
Какими навыками должен обладать разработчик для создания AIR-приложений?
В AIR-приложениях можно использовать Flash/Flex, HTML/JavaScript/AJAX и PDF. Корневым документом AIR-приложения может быть как HTML-файл, так и swf. При этом можно встраивать в текущие и новые окна приложения как HTML-элементы, так и swf. Также имеется возможность встраивания PDF-документов (при наличии у пользователя Acrobat Reader’а). Для работы с HTML используется движок WebKit, тот же самый, что и в браузере Safari. Возможет доступ из swf-документов к элементам HTML DOM, а также вызов JavaScript-функций и наоборот. То есть большинство современных клиентских веб-разработчиков могут с легкостью создавать AIR-приложения.
Какие версии среды исполнения AIR существуют на данный момент?
25 февраля 2008 была выпущена версия 1.0, которая является на данный момент текущей.
Какие платформы поддерживает Adobe AIR?
Версия 1.0, выпущенная 25 февраля 2008 г. поддерживает Windows и MacOS. В настоящее время идет работа над выпуском версии для Linux.
Каким образом следует подготавливать AIR-приложения для установки на различных платформах?
AIR-приложения (файлы с расширением *.air) уже готовы к установке для всех поддерживаемых платформ. Специальной подготовки файла для каждой платформы не требуется.
Каким образом осуществляется установка AIR-приложений?
Установить AIR-приложения можно как непосредственно с веб-странички, так и скачав файл к себе на локальную машину. В первом случае на веб-страничке размещается специальный бэйдж, который проверяет наличие у клиента среды исполнения AIR и при необходимости устанавливает ее (вес среды около 10M). После установки (определения наличия) среды исполнения AIR с помощью универсального инсталлера устанавливается само приложение. Каждое приложение может быть подписано (включая сертификаты, заверенные certificate authorities), информация о подписи указывается при установке, и пользователь сам волен решать, доверяет ли он издателю или нет. При установке приложения, скачанного пользователем на локальную машину, наличие среды исполнения не проверяется. Просто при запуске *.air-файла будет задан вопрос о том, с какой программой ассоциировать данное расширение. При установленной же среде исполнения AIR автоматически запустится универсальный инсталлер. Для приложений также доступна проверка обновлений приложения и установки новых версий.
Сколько стоит разработка AIR-приложения?
Стоимость разработки AIR-приложения, если не учитывать оплату услуг специалистов, состоит из стоимости SDK и инструментов для разработки. AIR SDK бесплатен и доступен для скачивания.. Он содержит в себе AIR Debug Launcher (ADL) и AIR Developer Tool (ADT), которые служат для запуска приложения во время отладки и для подготовки версии приложения, пригодной для установки конечным пользователем. Также SDK содержит шаблон дескриптора AIR-приложения, примеры AIR-бэйджа и файлы, представляющие алиасы AIR-классов для JavaScript. Для создания же компонентов, используемых при упаковке AIR-приложения инструментом ADT, можно использовать бесплатный Flex SDK (для создания swf-файлов), который уже включает в себя AIR SDK, среду разработки Flex Builder на базе Eclipse, либо же Adobe Flash, с помощью которых можно создавать swf-файлы. Для работы с AIR-приложениями на базе JavaScript существует бесплатное AIR-расширение для бесплатной Aptana Studio.. Таким образом есть как бесплатные SDK для разработки приложений, так и бесплатные инструменты.
Как мы видим, на данный момент Silverlight никак не является конкурентом Adobe AIR и играет на разных с ним полях. С точки зрения конкуренции, конкурентом Silverlight можно назвать Flash-плеер от Adobe.
Так что рекомендую господам журналистам проверять информацию прежде, чем делать столь громкие заявления (Microsoft готовит конкурента платформе Adobe AIR). А тем, кто бездумно перепечатывает подобные материалы, думать ![]()
Третий конкурс Russian Flash Awards
Кстати, буквально вчера стартовал третий конкурс Russian Flash Awards. Если кто не в курсе, то Russian Flash Awards - это первое в России (и, насколько я понимаю, вообще на русскоязычном пространстве) начинание подобного рода.
Старт же конкурса означает начало приёма работ. В этом году введены две новые категории: Flex и AIR. В качестве AIR-приложений принимаются только те, которые содержат swf-файл в качестве корневого документа (конкурс ведь посвящён Flash-платформе!).
Данный проект является некоммерческим. В жюри вошли различные фигуранты Flash-процесса, числом десять человек, в том числе глава российского представительства Adobe Павел Черкашин, что придаёт мероприятию дополнительный интересный статус.
Основное требование к работам (помимо направленности на Flash-платформу) - русскоязычность проекта. Конкурс-то наш, отечественный.
Работы принимаются до 30 апреля 2008 года. Победители станут известны 15 мая того же года.
Победитель лучшего проекта в номинации Flex или AIR поедет на ближайший европейский MAX, что, в общем-то, круто.
Остальная информация доступна на сайте Russian Flash Awards. Изучаем и отсылаем работы.
Также доступен пресс-релиз и длинное утомительное видео.
Движуха! ![]()
PS. Кстати, год назад наши девчонки Junique и Graann победили в этом конкурсе в номинации «Техническая заслуга» ![]()
Еще о событиях в ActionScript

Если кто-то помнит, на первой встрече Русскоязычной Группы Пользователей Flash-платформы (RAFPUG) я рассказывал о событиях в ActionScript 3. Как краевед могу сказать, что тема событий в ActionScript далеко не так тривиальна, как это может показаться на первый, второй и третий взгляд. Работая с ними довольно долго, можно тем не менее иногда обнаружить что-то новое, сделать новые выводы и найти применения старым вещам. В частности, в том докладе я сказал некоторую лажу и во всем зале меня никто не поправил
Поправлю себя сам.
Там я сказал, что event flow (поток событий) работает только для визуальных объектов и только для интерактивных событий мыши и клавиатуры, генерируемых Flash-плеером. На основании этого я продемонстрировал пример с искусственным бабблингом (фазой пузырька). И сделал слегка неверные выводы.
На самом деле, на практике все гораздо проще. И мой тот пример вполне работоспособный, но более актуальный для невизуальных объектов, либо для того, чтобы объекты генерировали целевую фазу (target phase) и фазу пузырька (bubbling phase) одновременно. Речь идет о делегировании события.
Для простой же фазы пузырька в визуальных объектах практически ничего не надо, и сейчас я это проиллюстрирую.
В изначальном утверждении про визуальные объекты и поток событий все правильно если рассматривать под потоком событий все три фазы (capture, target и bubbling). Но фаза пузырька (bubbling) работает и так, сама по себе.
Рассмотрим пример:
Пример сделан в виде просто AS-проекта для наглядности. Исходники можно посмотреть тут. Скачать проект можно тут.
Что мы видим на данном примере. Есть корневой Sprite, в котором лежит простой компонент ParentSprite (внешний серый квадрат), в нем лежит компонент ChildSprite, при клике на внутренний квадрат которого наш компонент генерит событие, которое ловится внешним Sprite‘ом безо всякого участия ParentSprite:
- private function onInsideChildClick (event:MouseEvent):void
- {
- dispatchEvent(new Event ("ourTargetEvent", true));
- }
Обработка события видна в текстовом поле. Весь секрет в волшебных пузырьках во втором параметре

