Flex и RIA блоги



2009-01-25

23:27:59, Скачать флешки, флеш, бесплатные Flash уроки и исходники. Создание сайтов.
Админка для Flash галереи

Теперь каждый сможет настроить фото галерею под себя

Бесплатная Flash галерея для фотографий

Всем привет. Недавно я сделал админку для свой flash галереи, которую распространяю бесплатно. Теперь вам не прийдётся скачивать файлы и в ручную править XML, для настройки галереи всего и потребуется, что читать пояснения к пунктам настройки, да правильно выбирать нужные параметры. Скажу честно: дело не сложное, и его сможет сделать каждый.

Бесплатная Flash галерея »

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong Linkstore.ru

2009-01-23

19:18:28, Flash-ripper.com
А как Вы перебираете элементы массива?

ВНЕЗАПНО обнаружил, что для обработки массивов в AS3 пользуюсь давно уже устаревшим методом, перебирая значения в цикле for. Но уже не первый год существует множество новых методов для обработки массивов в AS3. Например, нужно спрятать мувиклипы спрайты, занесенные в массив. Метод Array.foreach для этого и задуман:

sprites.foreach(function(sprite:*, index:int, array:Array):void{sprite.visible=false});

Как это делается по старинке в цикле вы хорошо знаете:

for(var i:int=0;i<sprites.length;i++){sprites[i].visible=false});

Я думаю, что проблема здесь не только в моем длинном тормозном пути, но и в документации, которая несколько суховата, а методы полезные. Кстати, по первой ссылке - образцовый туториал по всем этим методам.

Интересно, сктолько опечаток я сделал в этот раз :)


13:59:02, Flash-ripper.com
Вакансия Flash-программист, Excelior, Москва

В компанию Excelior требуется flash-программист.

Требования:

  • Уверенное владение ActionScript 3.0.
  • Опыт разработки клиент-серверных приложений.
  • Опыт разработки игр.
  • Опыт работы в команде.

Будет плюсом:

  • Опыт работы с физическими движками во flash.
  • Опыт работы с Adobe Flex Builder 2x, 3x.

Зарплата: 55 000 рублей и выше, по результатам собеседования.
Офис: 10 минут пешком от м. Таганская.

Связыватся по:
ICQ & AIM: 8155 465
e-mail: contact [псина] dl1t [тчк] com
телефон: +7 (917) 523 10 59
Павел a.k.a dl1t

P.S. Если вдруг что, пинать Nirth'a а не Роста, публиковал я =)


10:00:28, DL1t's blog
Вакансия Flash-программиста, Москва

В компанию Excelior требуется flash-программист.

Основные требования:
- уверенное владение ActionScript 3.0
- опыт разработки клиент-серверных приложений
- опыт разработки игр
- умение работать в команде

Будет плюсом:
- опыт работы с физическими движками во flash
- опыт работы с Flex

Зарплата - по результатам собеседования.
Офис: 10 минут пешком от м. Таганская.

Контакты:
ICQ: 8155465
e-mail: contact[собака]dl1t[точка]com
тел.: +7 (917) 523 10 59
Павел


00:10:10, Flash-ripper.com
25строк Январь финал
pВ a href="http://www.25lines.com"конкурсе/a на лучшие 25строк AS кода определены a href="http://www.25lines.com/?page_id=186"январские финалисты/a. Победителю по прежнему грозит Adobe CS4 Suite. Можно отдавать свои голоса.... А можно подсмотреть хитрости кода которые применяют авторы чтобы вмазаться в 25 строк.br / Интересно что сам автор Кейт Петерс в февральском конкурсе хочет a href="http://www.25lines.com/?p=216"изменить правила/a. Наверное сказывается отсутствие интереса к конкурсу (в январском этапе раза в 2 меньше учасников чем в декабре). можно попробовать предложить свои условия.br / Посмотрим что из этого получится.../pdiv class="feedflare" a href="http://feeds.feedburner.com/~f/flash-ripper?a=HngNcR.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=HngNcR.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=OMsGKT.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=OMsGKT.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=i9PZsS.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=i9PZsS.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=er5u8W.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=er5u8W.P" border="0"/img/a /div

2009-01-22

12:16:36, Flash-ripper.com
roundTo() — округлить число с заданным шагом
pВчера мне в очередной раз пригодился в работе маленький кусок кода, написанный более двух лет назад, но оказавшийся полезным для многократного использования. Это функция, которая округляет число по заданному модулю:/p prefunction roundTo(value:Number, base:Base): Number { return Math.floor((value + base / 2) / base) * base; }/prep Эта функция помогает в ситуациях, когда нужно дискретизировать числовой ряд с определенным шагом. Например, мне вчера она пришлась впору к реализации прилипания перетаскиваемого мышью спрайта к сетке. На вход функции подаем координату мыши и требуемый шаг сетки, а на выходе получаем координату, округленную до ближайшего значения с этим шагом./p pЭта функция оказалась для меня полезной уже не один раз, чего и вам желаю./pdiv class="feedflare" a href="http://feeds.feedburner.com/~f/flash-ripper?a=dBJs2p.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=dBJs2p.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=w6HPAN.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=w6HPAN.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=32B9Sc.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=32B9Sc.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=RaeYpU.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=RaeYpU.P" border="0"/img/a /div

2009-01-21

19:17:11, Flash-ripper.com
Встреча 120 программистов Беларуси не прошла незамеченной
pПервая совместная a href="http://bafpug.com/2008/12/02/sovmestnaya-vstrecha-byjug-i-bafpug/"встреча групп BAFPUG и Belarus JUG/a уже a href="http://www.openpr.com/news/65165/First-Joint-Meeting-of-Belarus-JUG-and-Adobe-Flash-Platform-User-Group-Featured-Adobe-and-SUN-Microsystems.html"вошла в пресс-релизы/a и a href="http://www.belarusjug.org/ru/fotootchet-s-sovmestnoy-vstrechi-byjug-i-bafpug.html"фотоотчеты/a и ознаменовалась присутствием и докладами представителей Adobe и Sun Microsystems — поздравляем с успешным мероприятием, друзья!/p pПора и нам уже вплотную задуматься о февральской встрече в Киеве. Напомню, что мы собираемся говорить о флэш-телефонии, VoIP sи a href="http://icq.com/forums/index.php?act=view_forumamp;group_id=10084"ненависти к аське/a/s. Так что если у вас есть соображения по поводу, идеи, пожелания, мемуары на тему "как я хакнул flashphone.ru", желание просто сделать или услышать интересный доклад, вопросы — то пишите в комментарии./p psmall// a href="http://jabbypanda.com/blog/"JabbyPanda/a, спасибо за ссылку на пресс-релиз!/small/pdiv class="feedflare" a href="http://feeds.feedburner.com/~f/flash-ripper?a=JGhZIm.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=JGhZIm.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=MdzQqr.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=MdzQqr.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=P9GCR2.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=P9GCR2.P" border="0"/img/a a href="http://feeds.feedburner.com/~f/flash-ripper?a=8TvvYl.P"img src="http://feeds.feedburner.com/~f/flash-ripper?i=8TvvYl.P" border="0"/img/a /div

00:43:38, DL1t's blog
Спецификация RTMP открывается

Adobe обьявила об открытии спецификации RTMP-протокола в 1ой половине 2009 года. Не прошло и нескольких лет, да. Теперь вместо сырой спецификации, полученной энтузиастами в результате исследования пакетов данных rtmp, будет полноценная документация, с учетом работы с h264-видео, что также радует. Адобовские механизмы шифрования раскрыты не будут, что логично. Ограничений на создание собственных механизмов защиты контента обещают не делать, что радует. К сожалению, о раскрытии спецификации p2p-протоколов, использующихся в 10м плеере, речи пока не идет.


2009-01-20

13:27:41, Flash-ripper.com
RiaStats.com — узнать где и сколько плагинов установлено

Дима Кочетов прислал полезную ссылку: на сайте riastats.com ведется статистика по распространению популярных плагинов сети: Flash Player и Silverlight.

Там вы не только можете узнать текущую статистику по общей распространенности плагинов, но и заполучить виджет для своего сайта. И этим получить дополнительную возможность повлиять на статистику, а также получать персонализированные отчеты по своему собственному сайту.

Кстати, общая статистика на 20 января 2009 года приятна: Flash Player 10 уже установлен на 44 процентах машин, а Sliverlight 2 доминирует над Silverlight 1, вместе они уже присутствуют на 16% компьютеров. Статистика собрана за последние тридцать дней по более чем полумиллиону ЭВМ.

10:51:00, Flash-разработка
Последние флэшеры покидают РБК СОФТ. Прощальные заметки, итоги
Всем уже известно, как кризис обошелся с РБК. Последние несколько месяцев, мы с любопытством наблюдали, как тонет этот гигант. Наверное, было не так уж плохо, когда, около 2х лет назад, РБК СОФТ и несколько других IT-компаний были отделены и собраны в холдинг Армада. Поэтому, кризис до нас добрался не так быстро. Но он добрался до нас.

Об этом конечно все знали. Осенью начались сильные перемены на верхах, ушли многие из руководства. Еще не кончился 2008-й год, а РБК СОФТ провел жесткие сокращения во всех своих подразделениях. В частности, не особо церемонясь, попрощался со своим отделом дизайна департамента интернет проектов. От прекрасной команды топовых дизайнеров осталось два-три человека. Я плохо понимаю, да и не очень хочется, что явилось причиной такого шага. Простые оправдания - кризис, убыточность, нерентабельность и т.п. Про сокращение зарплат вообще молчу, хотя, как говорят, 15% - не так уж и много.

Сокращения так же коснулись и отдела мультимедиа-презентаций, который я, собственно, представлял до конца прошлого года. После сокращения части флэшеров и специалистов по 3D- и видео-анимации, нас осталось только двое.

Начало 2009 года принесло новые сокращения. И вот, вчера было объявлено решение о сокращении флэшеров. Мой напарник уходит уже через одну-две недели. Мне дали больше времени - около месяца.

Конечно, жаль расставаться с устоявшимся образом жизни, после 3-х лет стабильной работы. Не могу сказать, что в РБК СОФТ было плохо. За время, которое я здесь работал, я приобрел огромный опыт и знания, хороших друзей, наработал приличный портфель. Работа, которой я занимался, во многом требовала творческого подхода. Несмотря на большие объемы и часто жесткие сроки, было достаточно времени на обучение и развитие. Хотя, не скажу конечно, что компания выделяла большие средства на повышение квалификации - это делалось со скрипом.

Подводя итоги своей работы в РБК СОФТ, хочется сказать, что пересмотреть результаты своей деятельности приятно:

  • Мультимедиа-презентации.
    Свою первую презентацию (не считая пары мультимедийных каталогов), я сделал еще в 2002-м для OTIS, будучи аутсорсером команды разработчиков eTeam. Позже, уже в стенах РБК СОФТ, презентация дорабатывалась и переделывалась без меня.

    Большая часть презентаций была разработана на основе движка, который я разработал еще в начале 2006-го. Одна из первых работ на этом движке - Мультимедийная презентация Fiat (самая первая - для компании "Начало" - говорящее название).

    Если говорить о работах, которыми я горжусь - это презентации Мультимедиа-презентация Лукойл, Мультимедийная презентация для «CeBIT 2007», Росстат. Предварительные итоги ВСХП по полной программе, ALM-Development, Комитет Рекламы Правительства Москвы. Еще был очень интересный проект - презентация самого департамента презентаций, с каталогом работ.

    Хочу отметить, что моей работой в этих проектах являлись программирование и анимация. Заслуги дизайна, безусловно принадлежат нашим дизайнерам - я участвовал лишь как критик, а разрабатывал дизайн лишь некоторых слайдов. Конечно, все идеи и работы - это результат тесного сотрудничества нашей команды.

  • Моя первая презентация на Flex. По сути, это интерактивная карта. Здесь, это on-line версия карты (к сожалению, клиент выложил не все материалы, поэтому много фотографий отсутствует). Изначально, это была мультимедиа-презентация на CD, которую, по просьбе клиента выложили в Интернет.
    Это был не первый опыт Flex-разработки, но мой первый коммерческий проект на Flex.

  • Игры и открытки. Я провел много приятных часов над их разработкой. Вот некоторые из них: Игра для ПНП «Здоровье», "Ледовое шоу маленьких поросят", ХЦ мышератор (первые две игры были созданы на базе физического движка моей разработки под flash 7-8, Мышератор - на Fisix под flash 9). Были и с раздеванием (жаль хостинг прикрыли), и просто заставки.

    Почти все игры на Детском Портале Москвы - наша работа. Есть хорошие, есть не очень. Не так давно, я разработал движок для кроссвордов, на базе которого работают Кроссворды. Они есть так же и на Молодежном портале Москвы.
    Для этого же портала, я разработал мультиплеерные игры Шашки и Го с использованием Flex и SmartFox. Опыт разработки мультиплеерных игр был получен при разработке игрового проекта (не буду называть, из коммерческих соображений) который, увы, так же был погублен кризисом и не был окончательно доделан и опубликован.

  • Банеры - до сих пор висит на сайте банер с шахматами, который я сделал в 2006 году. Тогда были золотые времена, когда хватало времени заморочиться на банер с 3D-эффектами.
    Могу с гордостью сказать, что вращающуюся монетку в логотипе сайта Сбербанка cделал я (не смотря на то, что смотрится она там, конечно, несколько абсурдно).

  • Работы по различному интерактиву, такие как ротатор рекламы на ТВ3, интерактивные карты с редактором в CMS (к сожалению, модуль карты для Raiffeisen еще не опубликован).

  • Flash-сайтами мы занимались крайне редко, ввиду специфики департамента мультимедиа-презентаций.
    Самая первая моя работа в РБК СОФТ, был сайт компании Steelar. Мне любезно предложили доделать flash-анимацию главной страницы и сделать форму заявки (нудная работа, от которой тогда все флэшеры открещивались), чем я и занялся с энтузиазмом, и в итоге, прикрутил даже печать формы из flash.

    Полностью флэшовый сайт для компании Базовый Элемент. Сейчас здесь уже совсем другой сайт. Но еще не так давно, это был сайт, полностью сделаный на flash 6, посаженный на CMS, с возможностью редактирования контента и deep-linking.

    Еще один сайт - VI, создававшийся в эпоху flash 8. Здесь я по полной оторвался, используя фильтры, включая DisplacementMap. Сейчас этот сайт на поддержке других разработчиков, но кардинальных изменений нет. С сожалением отмечаю, что это сайт выглядит несколько недоделанным. Виной тому были политические и материальные причины.

    Один из последних проектов - главная страница Детский портал Москвы. Гордиться этой работой пока не могу. Великолепный дизайн и громадная работа по разработке убиты кризисом и сроками. Несмотря на обширные работы по оптимизации, заставка забивает процессор по полной, а всё по одной причине - она не должна масштабироваться. Но она это делает, а следовательно включается сглаживание.
    Но доработка была отложена до лучших времен. Надеюсь, что эти времена настанут.

Забавно... Пост плавно преобразовался в нечто похожее на резюме или портфолио. Конечно это далеко не все работы, которые были сделаны в стенах РБК СОФТ. Кроме того, еще столько же было сделано на фрилансе, но об этом сейчас речь не идет.

Жизнь продолжается, ухожу в свободное плавание. Что будет дальше - время покажет...

Было и хорошее и плохое, и интересные проекты и не интересные, и удачи и провалы. Главное - прекрасные люди, с которыми я работал в команде. Кто-то сейчас еще в стенах РБК-СОФТ, кто-то давно ушел или попал под сокращение. Нам еще предстоит много работать вместе, но сейчас хочу сказать им всем огромное спасибо. Несмотря на развал, все кризисы и прочий негатив, в памяти остались только самые хорошие воспоминания.

Я на воротах


10:51:00, Flash-разработка
Последние флэшеры покидают РБК СОФТ. Прощальные заметки, итоги
Всем уже известно, как кризис обошелся с РБК. Последние несколько месяцев, мы с любопытством наблюдали, как тонет этот гигант. Наверное, было не так уж плохо, когда, около 2х лет назад, РБК СОФТ и несколько других IT-компаний были отделены и собраны в холдинг Армада. Поэтому, кризис до нас добрался не так быстро. Но он добрался до нас.

Об этом конечно все знали. Осенью начались сильные перемены на верхах, ушли многие из руководства. Еще не кончился 2008-й год, а РБК СОФТ провел жесткие сокращения во всех своих подразделениях. В частности, не особо церемонясь, попрощался со своим отделом дизайна департамента интернет проектов. От прекрасной команды топовых дизайнеров осталось два-три человека. Я плохо понимаю, да и не очень хочется, что явилось причиной такого шага. Простые оправдания - кризис, убыточность, нерентабельность и т.п. Про сокращение зарплат вообще молчу, хотя, как говорят, 15% - не так уж и много.

Сокращения так же коснулись и отдела мультимедиа-презентаций, который я, собственно, представлял до конца прошлого года. После сокращения части флэшеров и специалистов по 3D- и видео-анимации, нас осталось только двое.

Начало 2009 года принесло новые сокращения. И вот, вчера было объявлено решение о сокращении флэшеров. Мой напарник уходит уже через одну-две недели. Мне дали больше времени - около месяца.

Конечно, жаль расставаться с устоявшимся образом жизни, после 3-х лет стабильной работы. Не могу сказать, что в РБК СОФТ было плохо. За время, которое я здесь работал, я приобрел огромный опыт и знания, хороших друзей, наработал приличный портфель. Работа, которой я занимался, во многом требовала творческого подхода. Несмотря на большие объемы и часто жесткие сроки, было достаточно времени на обучение и развитие. Хотя, не скажу конечно, что компания выделяла большие средства на повышение квалификации - это делалось со скрипом.

Подводя итоги своей работы в РБК СОФТ, хочется сказать, что пересмотреть результаты своей деятельности приятно:

  • Мультимедиа-презентации.
    Свою первую презентацию (не считая пары мультимедийных каталогов), я сделал еще в 2002-м для OTIS, будучи аутсорсером команды разработчиков eTeam. Позже, уже в стенах РБК СОФТ, презентация дорабатывалась и переделывалась без меня.

    Большая часть презентаций была разработана на основе движка, который я разработал еще в начале 2006-го. Одна из первых работ на этом движке - Мультимедийная презентация Fiat (самая первая - для компании "Начало" - говорящее название).

    Если говорить о работах, которыми я горжусь - это презентации Мультимедиа-презентация Лукойл, Мультимедийная презентация для «CeBIT 2007», Росстат. Предварительные итоги ВСХП по полной программе, ALM-Development, Комитет Рекламы Правительства Москвы. Еще был очень интересный проект - презентация самого департамента презентаций, с каталогом работ.

    Хочу отметить, что моей работой в этих проектах являлись программирование и анимация. Заслуги дизайна, безусловно принадлежат нашим дизайнерам - я участвовал лишь как критик, а разрабатывал дизайн лишь некоторых слайдов. Конечно, все идеи и работы - это результат тесного сотрудничества нашей команды.

  • Моя первая презентация на Flex. По сути, это интерактивная карта. Здесь, это on-line версия карты (к сожалению, клиент выложил не все материалы, поэтому много фотографий отсутствует). Изначально, это была мультимедиа-презентация на CD, которую, по просьбе клиента выложили в Интернет.
    Это был не первый опыт Flex-разработки, но мой первый коммерческий проект на Flex.

  • Игры и открытки. Я провел много приятных часов над их разработкой. Вот некоторые из них: Игра для ПНП «Здоровье», "Ледовое шоу маленьких поросят", ХЦ мышератор (первые две игры были созданы на базе физического движка моей разработки под flash 7-8, Мышератор - на Fisix под flash 9). Были и с раздеванием (жаль хостинг прикрыли), и просто заставки.

    Почти все игры на Детском Портале Москвы - наша работа. Есть хорошие, есть не очень. Не так давно, я разработал движок для кроссвордов, на базе которого работают Кроссворды. Они есть так же и на Молодежном портале Москвы.
    Для этого же портала, я разработал мультиплеерные игры Шашки и Го с использованием Flex и SmartFox. Опыт разработки мультиплеерных игр был получен при разработке игрового проекта (не буду называть, из коммерческих соображений) который, увы, так же был погублен кризисом и не был окончательно доделан и опубликован.

  • Банеры - до сих пор висит на сайте банер с шахматами, который я сделал в 2006 году. Тогда были золотые времена, когда хватало времени заморочиться на банер с 3D-эффектами.
    Могу с гордостью сказать, что вращающуюся монетку в логотипе сайта Сбербанка cделал я (не смотря на то, что смотрится она там, конечно, несколько абсурдно).

  • Работы по различному интерактиву, такие как ротатор рекламы на ТВ3, интерактивные карты с редактором в CMS (к сожалению, модуль карты для Raiffeisen еще не опубликован).

  • Flash-сайтами мы занимались крайне редко, ввиду специфики департамента мультимедиа-презентаций.
    Самая первая моя работа в РБК СОФТ, был сайт компании Steelar. Мне любезно предложили доделать flash-анимацию главной страницы и сделать форму заявки (нудная работа, от которой тогда все флэшеры открещивались), чем я и занялся с энтузиазмом, и в итоге, прикрутил даже печать формы из flash.

    Полностью флэшовый сайт для компании Базовый Элемент. Сейчас здесь уже совсем другой сайт. Но еще не так давно, это был сайт, полностью сделаный на flash 6, посаженный на CMS, с возможностью редактирования контента и deep-linking.

    Еще один сайт - VI, создававшийся в эпоху flash 8. Здесь я по полной оторвался, используя фильтры, включая DisplacementMap. Сейчас этот сайт на поддержке других разработчиков, но кардинальных изменений нет. С сожалением отмечаю, что это сайт выглядит несколько недоделанным. Виной тому были политические и материальные причины.

    Один из последних проектов - главная страница Детский портал Москвы. Гордиться этой работой пока не могу. Великолепный дизайн и громадная работа по разработке убиты кризисом и сроками. Несмотря на обширные работы по оптимизации, заставка забивает процессор по полной, а всё по одной причине - она не должна масштабироваться. Но она это делает, а следовательно включается сглаживание.
    Но доработка была отложена до лучших времен. Надеюсь, что эти времена настанут.

Забавно... Пост плавно преобразовался в нечто похожее на резюме или портфолио. Конечно это далеко не все работы, которые были сделаны в стенах РБК СОФТ. Кроме того, еще столько же было сделано на фрилансе, но об этом сейчас речь не идет.

Жизнь продолжается, ухожу в свободное плавание. Что будет дальше - время покажет...

Было и хорошее и плохое, и интересные проекты и не интересные, и удачи и провалы. Главное - прекрасные люди, с которыми я работал в команде. Кто-то сейчас еще в стенах РБК-СОФТ, кто-то давно ушел или попал под сокращение. Нам еще предстоит много работать вместе, но сейчас хочу сказать им всем огромное спасибо. Несмотря на развал, все кризисы и прочий негатив, в памяти остались только самые хорошие воспоминания.

Я на воротах



2009-01-19

18:53:00, Flash-разработка
Сохраняем звук с микрофона на сервер

Сегодня на повестке дня стоит вопрос - как записать звук и сохранить его на сервер при помощи Flash. Задача с первого взгляда простая, попробуем-ка с ней разобраться.
Не забываем, что снять звук напрямую в Flash Player нельзя: Flash-разработка: Прокол с микрофоном.

Для начала, поглядим, что скажет наши самые близкие помощники - Adobe Flex 3 Help и Adobe® Flex™ 3 Language Reference:

Главная статья о работе со звуком. Тут мы проваливаемся в Capturing sound input и смотрим, как получить звук с микрофона и что, собственно, можно сделать с этим звуком.

Итак, Microphone - класс, который нам позволит записать звук с нашего микрофона.
При использовании микрофона, необходимо, чтобы размер окна нашего приложения был не менее 215 x 138. Иначе ничего не выйдет - Flash Player должен вывести из соображений безопасности окно подтверждения использования микрофона (а как бы здорово было бы скрыть это окошко и подслушивать, что там говорят юзеры про наш сайт :). Кстати, умные люди додумались, как это сделать). Класс позволяет выбрать и активировать при помощи метода getMicrophone нужный микрофон, настроить характеристики записи.

  • Accessing a microphone - читаем и копипастим, как активировать микрофон.
  • Routing microphone audio to local speakers - возможность транслировать звук на колонки юзера. Это наверное для того, чтобы лучше себя слышать в наушниках или сделать эдакий "громкоговоритель" :). Скорее всего, эта функция нужна для того, чтобы юзер мог убедиться собственными ушами, что его микрофон работает.
  • Altering microphone audio - вкратце о том, как поменять громкость и частоту.
  • Detecting microphone activity - рассказывает о таком полезном свойстве, как отключение приема звука через интервал времени silenceTimeout, если его уровень activityLevel менее silenceLevel. Это экономит производительность и трафик, в общем - очень правильный подход. При отключении микрофона после тайм-аута и его включении при появлении звука, генерируется событие ActivityEvent.ACTIVITY, что и помогает нам включать и выключать запись звука. Нужно также учесть, что микрофон включается не сразу, а после некоторой задержки - это плата за экономию трафика - если установить порог тишины, то микрофон отключаться не будет, но зато и задержка исчезнет.
  • Sending audio to and from a media server - то что нам и нужно. Говорят, что нет ничего проще - приаттачить объект нашего микрофона к NetStream и передавать данные прямо на сервер типа Flash Media Server.

Вот, собственно и вся теория. Переходим к практике. Для начала, пошуршим по Гуглу на предмет нашего вопроса.

Как я понимаю, нас интересуют серверы, которые обеспечивают потоковую передачу данных по средством протокола RTMP или Real Time Messaging Protocol.

Вот информация о медиа-серверах:

Итак, рассмотрем претендентов на использование в качестве сервера:

Flash Media Server:
Семейство продуктов Flash Media Server - лидирующее решение для задач обработки потокового видео, рилтайм-коммуникаций. В общем, как всегда у Adobe всё безупречно и дорого. Лучше смотреть таблицу сравнения редакций сервера. Для нашей задачи, вполне достаточно версии Flash Media Streaming Server, ценой в пределах $1k (если не ошибаюсь, платить надо каждый год).
Есть и такие мнения: Не так уж и хорош Flash Media Server. Передача данных с FMS на веб-сервер.
Опыта разработки крупномасштабных on-line систем у меня нет, поэтому делаю пока основанный только на воспринятой информации, чисто субъективный вывод - использовать FMS для записи звука - качественная стрельба по воробьям из ракетного комплекса.

Wowza: Относительно свежий, годичной давности, сервер. Не бесплатный, но все же на много дешевле (Wowza Media Server Pro...имеет более гуманную лицензионную модель) чем FMS медиа-сервер. Русскоязычной информации по серверу не так много, а документации, предоставленной на сайте, вполне достаточно.
Полезная информация: RTMP транспорт для Flashphone.ru теперь обеспечивается Wowza Media Server.

RED5: Самый популярный опенсорсный медиа-сервис. Информации про него - море, хотя на сайтах проекта черт ногу сломит. Есть довольно кривая документация в PDF.
Начать можно, хотя бы вот - со статьи "Начало разработки с Red5". Вот еще статейка, которая поможет нам начать: Изучаю Red5 с нуля =). Тут же имеется ссылка на доки.
Полезная информация: Red5 на Википедии, RED5 на ohloh, Red5 Plugin для Eclipse IDE - beta 1, red5-recorder.

Кстати, любопытный факт. SmartFox Server так же позволяет работать с потоковыми видео и аудио. Отвечает за это дело, некий модуль, именуемый RedBOX, который базируется, как вы уже догадались, на Red5 project. Модуль этот, само собой, бесплатный, так что, при желании, можно организовать видео-аудио общение игроков в процессе онлайн-игры. И с документацией тоже всё в порядке. Что тут говорить - молодцы, здорово подсуетились.

haXeVideo: Многопоточный сервер, осуществляющий управление FLV-видеопотоками. Это совсем свежий, конечно же бесплатный, сервер, полностью написанный на haXe, легкий, не требовательный к производительности сервера, и очень масштабируемый. Вот Официальный релиз haxeVideo 1.0. Собственно, никаких видимых сложностей для использования сервера нет - это можно наблюдать в небольшом туторе Пробуем haxeVideo. Как видно из примера, серверная часть не потребовала ни сложного конфигурирования, ни программирования. Однако, мы наблюдали появление FLV-видео, а вот как насчет, к примеру MP3? Поиски привели к какой-то почтовой переписке, но я так с ней и не разобрался. Вообще, информации пока мало, но это не значит, что сервер haXeVideo не является достойным решением.

Mammoth - The Open Source Flash Streaming Server.
Собственно релиз от Роста Встречайте Open Source Flash Media Server — Mammoth раскрывает основные моменты. Кроме того, жаркая дискуссия в этом посте может здорово помочь в выборе медиа-серверов и раскрыть их сильные и слабые стороны.

А вот к примеру, интересно посмотреть, как реализуется простой PHP-streaming.
Есть способ с исходниками, 'Streaming' flv video via PHP, take two. Правда он работает не на запись видео а на воспроизведение. Совсем старый... Но посмотрите, внизу есть пара апдейтов конца 2007-го. Попробуем качнуть. Действительно, здесь довольно замысловатый, но аккуратный PHP код и два fla (под FP7 и FP8) с проигрывателями всего этого безобразия.

Kaltura. Это целая опенсорсная видео-платформа (как нам рассказывает OSFlash). Она позволяет интегрировать в любой сайт множество интерактивных медийных наворотов с полной поддержкой онлайн-видео. Говорят, можно легко инсталлировать модули на такие веб-платформы как MediaWiki, WordPress, Drupal, Joomla и тд. И на ней сидят такие сайты как MySpace, YouTube, Flickr, ccMixter, Jamendo, и даже The New York Public Library.
Сайт тоже очень качественный, что даже странно для опенсорсной платформы.
Kaltura посвящен раздел Википедии на русском.
KalturaServer отвечает за управление контентом и правами, хранени, доставку, обработку, видео- и аудио- кодирование и прочее.
Клиентская часть (Flex), KalturaCVF, Kaltura Collaborative Video Framework, представляется тремя уровнями:

  • Core - ядро (управление видео, событиями, метаданными и т.д.).
  • KalturaPresentationLayer - уровень визуализации (набор библиотек управления стилями, скинами, связыванием данных и т.п.).
  • KalturaWidgets - богатый набор Flex-приложений, который, действительно впечатляет.

Интересно, на сколько всё это понятно и бесплатно. Короче, надо смотреть, тут море информации. В русскоязычном интернете я кроме новостей и анонсов ничего толком не нашел. Может быть не там искал?

На этом пока обзор закончу, но по мере появления информации, буду делать апдейты. Выводы делать еще рано, но в любом случае, какое-то решение будет принято.


18:53:00, Flash-разработка
Сохраняем звук с микрофона на сервер

Сегодня на повестке дня стоит вопрос - как записать звук и сохранить его на сервер при помощи Flash. Задача с первого взгляда простая, попробуем-ка с ней разобраться.
Не забываем, что снять звук напрямую в Flash Player нельзя: Flash-разработка: Прокол с микрофоном.

Для начала, поглядим, что скажет наши самые близкие помощники - Adobe Flex 3 Help и Adobe® Flex™ 3 Language Reference:

Главная статья о работе со звуком. Тут мы проваливаемся в Capturing sound input и смотрим, как получить звук с микрофона и что, собственно, можно сделать с этим звуком.

Итак, Microphone - класс, который нам позволит записать звук с нашего микрофона.
При использовании микрофона, необходимо, чтобы размер окна нашего приложения был не менее 215 x 138. Иначе ничего не выйдет - Flash Player должен вывести из соображений безопасности окно подтверждения использования микрофона (а как бы здорово было бы скрыть это окошко и подслушивать, что там говорят юзеры про наш сайт :). Кстати, умные люди додумались, как это сделать). Класс позволяет выбрать и активировать при помощи метода getMicrophone нужный микрофон, настроить характеристики записи.

  • Accessing a microphone - читаем и копипастим, как активировать микрофон.
  • Routing microphone audio to local speakers - возможность транслировать звук на колонки юзера. Это наверное для того, чтобы лучше себя слышать в наушниках или сделать эдакий "громкоговоритель" :). Скорее всего, эта функция нужна для того, чтобы юзер мог убедиться собственными ушами, что его микрофон работает.
  • Altering microphone audio - вкратце о том, как поменять громкость и частоту.
  • Detecting microphone activity - рассказывает о таком полезном свойстве, как отключение приема звука через интервал времени silenceTimeout, если его уровень activityLevel менее silenceLevel. Это экономит производительность и трафик, в общем - очень правильный подход. При отключении микрофона после тайм-аута и его включении при появлении звука, генерируется событие ActivityEvent.ACTIVITY, что и помогает нам включать и выключать запись звука. Нужно также учесть, что микрофон включается не сразу, а после некоторой задержки - это плата за экономию трафика - если установить порог тишины, то микрофон отключаться не будет, но зато и задержка исчезнет.
  • Sending audio to and from a media server - то что нам и нужно. Говорят, что нет ничего проще - приаттачить объект нашего микрофона к NetStream и передавать данные прямо на сервер типа Flash Media Server.

Вот, собственно и вся теория. Переходим к практике. Для начала, пошуршим по Гуглу на предмет нашего вопроса.

Как я понимаю, нас интересуют серверы, которые обеспечивают потоковую передачу данных по средством протокола RTMP или Real Time Messaging Protocol.

Вот информация о медиа-серверах:

Итак, рассмотрем претендентов на использование в качестве сервера:

Flash Media Server:
Семейство продуктов Flash Media Server - лидирующее решение для задач обработки потокового видео, рилтайм-коммуникаций. В общем, как всегда у Adobe всё безупречно и дорого. Лучше смотреть таблицу сравнения редакций сервера. Для нашей задачи, вполне достаточно версии Flash Media Streaming Server, ценой в пределах $1k (если не ошибаюсь, платить надо каждый год).
Есть и такие мнения: Не так уж и хорош Flash Media Server. Передача данных с FMS на веб-сервер.
Опыта разработки крупномасштабных on-line систем у меня нет, поэтому делаю пока основанный только на воспринятой информации, чисто субъективный вывод - использовать FMS для записи звука - качественная стрельба по воробьям из ракетного комплекса.

Wowza: Относительно свежий, годичной давности, сервер. Не бесплатный, но все же на много дешевле (Wowza Media Server Pro...имеет более гуманную лицензионную модель) чем FMS медиа-сервер. Русскоязычной информации по серверу не так много, а документации, предоставленной на сайте, вполне достаточно.
Полезная информация: RTMP транспорт для Flashphone.ru теперь обеспечивается Wowza Media Server.

RED5: Самый популярный опенсорсный медиа-сервис. Информации про него - море, хотя на сайтах проекта черт ногу сломит. Есть довольно кривая документация в PDF.
Начать можно, хотя бы вот - со статьи "Начало разработки с Red5". Вот еще статейка, которая поможет нам начать: Изучаю Red5 с нуля =). Тут же имеется ссылка на доки.
Полезная информация: Red5 на Википедии, RED5 на ohloh, Red5 Plugin для Eclipse IDE - beta 1, red5-recorder.

Кстати, любопытный факт. SmartFox Server так же позволяет работать с потоковыми видео и аудио. Отвечает за это дело, некий модуль, именуемый RedBOX, который базируется, как вы уже догадались, на Red5 project. Модуль этот, само собой, бесплатный, так что, при желании, можно организовать видео-аудио общение игроков в процессе онлайн-игры. И с документацией тоже всё в порядке. Что тут говорить - молодцы, здорово подсуетились.

haXeVideo: Многопоточный сервер, осуществляющий управление FLV-видеопотоками. Это совсем свежий, конечно же бесплатный, сервер, полностью написанный на haXe, легкий, не требовательный к производительности сервера, и очень масштабируемый. Вот Официальный релиз haxeVideo 1.0. Собственно, никаких видимых сложностей для использования сервера нет - это можно наблюдать в небольшом туторе Пробуем haxeVideo. Как видно из примера, серверная часть не потребовала ни сложного конфигурирования, ни программирования. Однако, мы наблюдали появление FLV-видео, а вот как насчет, к примеру MP3? Поиски привели к какой-то почтовой переписке, но я так с ней и не разобрался. Вообще, информации пока мало, но это не значит, что сервер haXeVideo не является достойным решением.

Mammoth - The Open Source Flash Streaming Server.
Собственно релиз от Роста Встречайте Open Source Flash Media Server — Mammoth раскрывает основные моменты. Кроме того, жаркая дискуссия в этом посте может здорово помочь в выборе медиа-серверов и раскрыть их сильные и слабые стороны.

А вот к примеру, интересно посмотреть, как реализуется простой PHP-streaming.
Есть способ с исходниками, 'Streaming' flv video via PHP, take two. Правда он работает не на запись видео а на воспроизведение. Совсем старый... Но посмотрите, внизу есть пара апдейтов конца 2007-го. Попробуем качнуть. Действительно, здесь довольно замысловатый, но аккуратный PHP код и два fla (под FP7 и FP8) с проигрывателями всего этого безобразия.

Kaltura. Это целая опенсорсная видео-платформа (как нам рассказывает OSFlash). Она позволяет интегрировать в любой сайт множество интерактивных медийных наворотов с полной поддержкой онлайн-видео. Говорят, можно легко инсталлировать модули на такие веб-платформы как MediaWiki, WordPress, Drupal, Joomla и тд. И на ней сидят такие сайты как MySpace, YouTube, Flickr, ccMixter, Jamendo, и даже The New York Public Library.
Сайт тоже очень качественный, что даже странно для опенсорсной платформы.
Kaltura посвящен раздел Википедии на русском.
KalturaServer отвечает за управление контентом и правами, хранени, доставку, обработку, видео- и аудио- кодирование и прочее.
Клиентская часть (Flex), KalturaCVF, Kaltura Collaborative Video Framework, представляется тремя уровнями:

  • Core - ядро (управление видео, событиями, метаданными и т.д.).
  • KalturaPresentationLayer - уровень визуализации (набор библиотек управления стилями, скинами, связыванием данных и т.п.).
  • KalturaWidgets - богатый набор Flex-приложений, который, действительно впечатляет.

Интересно, на сколько всё это понятно и бесплатно. Короче, надо смотреть, тут море информации. В русскоязычном интернете я кроме новостей и анонсов ничего толком не нашел. Может быть не там искал?

На этом пока обзор закончу, но по мере появления информации, буду делать апдейты. Выводы делать еще рано, но в любом случае, какое-то решение будет принято.

* * *

Понемножку просматриваю ресурсы по медиа-серверам. Читая про Red5, выяснил, что писать звук с клиента в формате MP3 он не умеет, по причине того, что Flash player поддерживает только аудио-формат NellyMoser, а сервер всего лишь снимает входящий поток. Утилит под Linux для транскодирования NellyMoser по-видимому нет.
При таком раскладе, haxeVideo вполне равноценно Red5 в плане записи mp3.
Однако, часто упоминается некий проект ffmpeg, и как про него говорят, он поддерживает FLV. Кроме того, есть упоминание о разработке потокового сервера ffserver. И проекты, где использовался.

Еще информация по записи звука Red5: Flash Media Server and Red5 Resources.

* * *

Добрался до конвертации flv -> mp3. По этой теме есть следующие идеи: Converting audio FLV file to MP3?, где предлагается конвертировать NellyMoser в WAV, а затем уж в MP3, что не вызывает проблем. А решается это при помощи следующего инструмента: nellynomore. Работает ли это или нет - не могу сказать. Скоро узнаем.

* * *

Информация о установке RED5 на FreeBSD:
http://osflash.org/red5/suse (говорят, что вроде работает)
http://www.opennet.ru/openforum/vsluhforumID1/77112.html
http://portsmon.freebsd.org/portoverview.py?category=www&portname=red5

* * *

haxeVideo и FreeBSD:
http://haxe.ru/node/151#comments

* * *

rubyizumi
RTMP Server(MP4/H.264) for Flash video/audio streaming written in Ruby



2009-01-18

12:05:00, Flash-разработка
Как сохранить из Flash изображение II

Продолжаем совершенствование технологий, и подбираем новый метод сохранения изображений на сервер.
Последний раз мы это делали здесь: Как сохранить из Flash изображение в формате JPG. Посмотрим, насколько с той поры наука шагнула вперед.

Шуршим по гуглу и отвергаем посты, старше 2007-го года.

Итак, ссылок море, но все сводится к одному простому решению:
Using the AS3 Jpeg Encoder от Henry Jones.
Более коротко это описано здесь: Saving JPEGs with Flash,
довольно развернуто здесь: Save JPG JPEG PNG BMP Image Action Script 3.
Тут flash используется для конвертации и загрузки изображений на сервер: Using AS3 to Upload and Encode Images.
А вот здесь, даже разработали класс AS3 ImageSaver Class v1.0, который сохраняет изображения на сервер. Можно пользоваться.

Смысл прост - снимается BitmapData с интересующего нас клипа, кодируется в JPEG/PNG, что дает ButeArray, который затем и отправляется на сервер.

Но почему, все они используют Adobe AS3 Corelib классы, а в частности com.adobe.images.JPGEncoder? Ведь FlexSDK уже давно имеет mx.graphics.codec.JPEGEncoder и mx.graphics.codec.PNGEncoder. Попробуем разобраться.

Если с классами SDK всё понятно - все они в документации Flex SDK, то для исследования Corelib ознакомимся с документацией. Здесь множество других интересных классов, но в данный момент нас не интересующих. Возможно, какая-то часть этих классов была включена в SDK позже. Других объяснений я не нахожу.
Другое подозрение: в этой статье New Flash 10 Class: SavingBitmap так же используются эти классы, и автор делает упор, что нужен Flash Player 10. Но вот небольшой обзор Класс ImageSnapshot (Flex SDK 3), в котором никаких подобных требований не оглашается. В общем, разберемся в процессе разработки - благо, поменять кодеки можно в любой момент.

Кстати, Еще одна статья "as3corelib Tutorial:How to Use JPEGEncoder and PNGEncoder Class in Flex" с демкой дает нам возможность сравнить кодирование при помощи кодеков Corelib и Adobe.

Хочется отметить, что процесс сохранения изображения заметно упростился и появилось много новых возможностей. И это радует.

Итак, берем за основу один из примеров, и пробуем.

* * *

Получить BitmapData и закодировать его нужным кодеком (от Flex SDK) - дело пяти минут. А вот сохранить изображение - это уже задача не простая.

Я начал с примера Using AS3 to Upload and Encode Images и на 4-м пункте, столкнулся с неким классом, именуемым UploadPostHelper. Ссылка вывела на еще один пост о сохранении из flash изображений на сервер: how to impress your friends by taking an image snapshot of a flash movie and automatically uploading the jpg to a server in three easy steps. Оказалось, что это очень полезный класс, который позволяет заключить в один запрос, помимо данных с изображением, набор передаваемых через POST переменных в виде пар Имя=Значение.

В моем случае, такой необходимости нет, всё что мне нужно, я буду передавать через GET. Но на будущее, запомним UploadPostHelper - это очень полезный инструмент. В целях упрощения, я беру код, относящийся к сохранению из Save JPG JPEG PNG BMP Image Action Script 3. Он довольно избыточен, но рабочий (скачал и проверил на своем хосте), и основные моменты можно вполне позаимствовать.

* * *

Код работает отлично, проблем не возникало, за исключением PHP, который при ошибке возвращает не пару "имя/значение" а простую строку, что вызывало ошибку. Но это было при отладке, так что когда я заменил эту строку на пару типа "status=Error", всё встало на свое место.


12:05:00, Flash-разработка
Как сохранить из Flash изображение II

Продолжаем совершенствование технологий, и подбираем новый метод сохранения изображений на сервер.
Последний раз мы это делали здесь: Как сохранить из Flash изображение в формате JPG. Посмотрим, насколько с той поры наука шагнула вперед.

Шуршим по гуглу и отвергаем посты, старше 2007-го года.

Итак, ссылок море, но все сводится к одному простому решению:
Using the AS3 Jpeg Encoder от Henry Jones.
Более коротко это описано здесь: Saving JPEGs with Flash,
довольно развернуто здесь: Save JPG JPEG PNG BMP Image Action Script 3.
Тут flash используется для конвертации и загрузки изображений на сервер: Using AS3 to Upload and Encode Images.
А вот здесь, даже разработали класс AS3 ImageSaver Class v1.0, который сохраняет изображения на сервер. Можно пользоваться.

Смысл прост - снимается BitmapData с интересующего нас клипа, кодируется в JPEG/PNG, что дает ButeArray, который затем и отправляется на сервер.

Но почему, все они используют Adobe AS3 Corelib классы, а в частности com.adobe.images.JPGEncoder? Ведь FlexSDK уже давно имеет mx.graphics.codec.JPEGEncoder и mx.graphics.codec.PNGEncoder. Попробуем разобраться.

Если с классами SDK всё понятно - все они в документации Flex SDK, то для исследования Corelib ознакомимся с документацией. Здесь множество других интересных классов, но в данный момент нас не интересующих. Возможно, какая-то часть этих классов была включена в SDK позже. Других объяснений я не нахожу.
Другое подозрение: в этой статье New Flash 10 Class: SavingBitmap так же используются эти классы, и автор делает упор, что нужен Flash Player 10. Но вот небольшой обзор Класс ImageSnapshot (Flex SDK 3), в котором никаких подобных требований не оглашается. В общем, разберемся в процессе разработки - благо, поменять кодеки можно в любой момент. (Позже выясняется, спасибо BlooDHounD - что б я без него делал :), что CoreLib пользуют, "из-за отсутвия в нём флекса").

Кстати, Еще одна статья "as3corelib Tutorial:How to Use JPEGEncoder and PNGEncoder Class in Flex" с демкой дает нам возможность сравнить кодирование при помощи кодеков Corelib и Adobe.

Хочется отметить, что процесс сохранения изображения заметно упростился и появилось много новых возможностей. И это радует.

Итак, берем за основу один из примеров, и пробуем.

* * *

Получить BitmapData и закодировать его нужным кодеком (от Flex SDK) - дело пяти минут. А вот сохранить изображение - это уже задача не простая.

Я начал с примера Using AS3 to Upload and Encode Images и на 4-м пункте, столкнулся с неким классом, именуемым UploadPostHelper. Ссылка вывела на еще один пост о сохранении из flash изображений на сервер: how to impress your friends by taking an image snapshot of a flash movie and automatically uploading the jpg to a server in three easy steps. Оказалось, что это очень полезный класс, который позволяет заключить в один запрос, помимо данных с изображением, набор передаваемых через POST переменных в виде пар Имя=Значение.

В моем случае, такой необходимости нет, всё что мне нужно, я буду передавать через GET. Но на будущее, запомним UploadPostHelper - это очень полезный инструмент. В целях упрощения, я беру код, относящийся к сохранению из Save JPG JPEG PNG BMP Image Action Script 3. Он довольно избыточен, но рабочий (скачал и проверил на своем хосте), и основные моменты можно вполне позаимствовать.

* * *

Код работает отлично, проблем не возникало, за исключением PHP, который при ошибке возвращает не пару "имя/значение" а простую строку, что вызывало ошибку. Но это было при отладке, так что когда я заменил эту строку на пару типа "status=Error", всё встало на свое место.



2009-01-15

13:34:08, RIA crumbs
Некоторые пояснения по синтаксису ActionScript 3.

Не смотря на то, что посл делался в Октябре 2005 года, он все еще полезен, особенно если учесть что Adobe до сих пор не внесла некоторые пояснения в help.

Пост написал Пол Робертсон (Paul Robertson), работает в Adobe в качестве Sr. ActionScript Developer/Writer for the Platform Developer Documentation team. Блог у него довольно полезный.

Сами пояснения читать тут.


13:34:08, RIA crumbs
Некоторые пояснения по синтаксису ActionScript 3.

Не смотря на то, что пост делался в Октябре 2005 года, он все еще полезен, особенно если учесть что Adobe до сих пор не внесла некоторые пояснения в help.

Пост написал Пол Робертсон (Paul Robertson), работает в Adobe в качестве Sr. ActionScript Developer/Writer for the Platform Developer Documentation team. Блог у него довольно полезный.

Сами пояснения читать тут.


13:34:08, RIA crumbs
Некоторые пояснения по синтаксису ActionScript 3.

Не смотря на то, что пост делался в Октябре 2005 года, он все еще полезен, особенно если учесть что Adobe до сих пор не внесла некоторые пояснения в help.

Пост написал Пол Робертсон (Paul Robertson), работает в Adobe в качестве Sr. ActionScript Developer/Writer for the Platform Developer Documentation team. Блог у него довольно полезный.

Сами пояснения читать тут.


10:03:33, Flash-ripper.com
Лучшие сайты 2008 года: прекрасно, ужасно, уютно, страшно

По версии поступившего в продажу FWA лучшими флэш-сайтами 2008 года стали два сайта:

1. Прекрасный трехмерный 300парк The Eco Zoo в категории "Site Of The Year" по выбору FWA:

The Eco Zoom — FWA Site Of The Year 2008

 

2. Ужасный отель Hotel626 — признан лучшим по итогам народного голосования:

The Eco Zoom — FWA People Choice Awards 2008

Глядя на победителей, как никогда остро осознаешь инфантильность любимой технологии. О, уютная флэш-песочница с симпатичными трехмерными игрушечулечками и пугающими до смерти шестьсотдвадцатьшестыми отелями — я ни на что тебя не променяю!


2009-01-14

15:58:30, Flash-ripper.com
Компоненты ILOG Elixir 1.0 Beta доступны для скачивания

ILOG Elixir — это библиотека компонентов визуализации данных для приложений Flex и Adobe AIR. В феврале 2008 г. одновременно с Flex 3 вышел набор ILOG Elixir 1.0, а в начале 2009 года выйдет ILOG Elixir 2.0, бета-версия которого доступна сейчас. Она состоит из 11 компонентов:

  1. 3D-диаграммы.
  2. Индикаторы, шкалы, циферблаты.
  3. Органиграммы.
  4. Векторные карты.
  5. Календари (new).
  6. Диаграммы аналитической обработки данных (OLAP) и Pivot-диаграммы (new).
  7. Карты распределения плотности (Heatmaps) (new).
  8. Диаграммы ресурсов Гантта (Gantt resource charts).
  9. Диаграммы задач Гантта (Gantt task charts) (new).
  10. Лепестковые диаграммы (Radar charts).
  11. Модный Treemap.

Хотите попробовать в работе? Можно скачать компоненты ILOG Elixir 2.0 Beta. // via a_[w]


07:30:56, Flash-ripper.com
Prettyloaded.com — прелоадер на прелоадере

Коллекции прелоадеров и даже конкурс на идеальный прелоадер — это мы уже видели. Но еще никогда проект демонстрации предварительной загрузки не исполнялся с такой концептуальной чистотой: разнообразные прелоадеры бесконечно загружают друг друга на специально отведенном сайте prettyloaded.com. Можно почерпнуть немало вдохновения.

Удивительно, сколькими конкретными способами можно изобразить абстрактную идею прогресса.


2009-01-13

14:43:55, Flash-ripper.com
Сайт Favorite Website Awards выставлен на продажу

Сегодня пришло сообщение о том, что поступил в продажу The FWA, любимый ресурс флэшеров и дизайнеров. Если вы заинтересованы в данном вопросе или можете представлять заинтересованную в этом вопросе компанию, то можно написать по адресу teamfwa@thefwa.com.

И даже если вы не заинтересованы в покупке FWA, то все равно можете узнать кое-что полезное: например, статистику посещений сайта Favourite Website Awards за все время с мая 2000 года по октябрь 2008. Кстати, в октябре 2008 года на сайт зашло 357,956 уникальных посетитетелей. Можно почитать, как британские авторы FWA расписывают его товарные качества — может пригодиться.

Пожелаем The FWA попасть в хорошие руки! И — с наступающим вас по юлианскому :-)


2009-01-12

23:23:00, Flex 2 & Co
Будем знакомы - Pivot
Pivot - это открытая платформа для разработки RIA на Java. Она сочетает в себе производительность и юзабилити всех современных RIA-фреймворков и мощь Java-платформы.

Как Flex и Silverlight, Pivot обладает свойствами, благодаря которым создавать GUI приложения достаточно легко: декларативный UI, связывание данных, различные эффекты, интеграцию с веб-сервисами и т.п.

Страница проекта
Демки
Загрузки
Уроки
Более подробный обзор.
Использование JavaScript внутри Pivot

23:23:00, Flex 2 & Co
Будем знакомы - Pivot
Pivot - это открытая платформа для разработки RIA на Java. Она сочетает в себе производительность и юзабилити всех современных RIA-фреймворков и мощь Java-платформы.

Как Flex и Silverlight, Pivot обладает свойствами, благодаря которым создавать GUI приложения достаточно легко: декларативный UI, связывание данных, различные эффекты, интеграцию с веб-сервисами и т.п.

Страница проекта
Демки
Загрузки
Уроки
Более подробный обзор.
Использование JavaScript внутри Pivot

23:23:00, Flex 2 & Co
Будем знакомы - Pivot
Pivot - это открытая платформа для разработки RIA на Java. Она сочетает в себе производительность и юзабилити всех современных RIA-фреймворков и мощь Java-платформы.

Как Flex и Silverlight, Pivot обладает свойствами, благодаря которым создавать GUI приложения достаточно легко: декларативный UI, связывание данных, различные эффекты, интеграцию с веб-сервисами и т.п.

Страница проекта
Демки
Загрузки
Уроки
Более подробный обзор.
Использование JavaScript внутри Pivot

15:08:32, Flash-ripper.com
Казуал Коннект в Гамбурге — с участием флэшеров

Вадим Старыгин готовит встречу разработчиков игр в Гамбурге.

Место проведения встречи:
CONGRESS CENTER HAMBURG
Marseiller Strasse 1
20355, Hamburg, Germany (карта)

Время: Конференция будет проходить с 10 по 12 февраля. На третий день (12) флэшеры имеют право бесплатного входа на конференцию — Вадим зовет поучаствовать в событии.

Если вы хотите выступить с презентацией или лекцией — напишите Вадиму. Немного больше информации можно найти в его англоязычном блоге и на сайте europe.casualconnect.org. Регистрироваться здесь.


2009-01-10

19:33:28, DL1t's blog
Skyfire beta: (почти) полноценный флеш на мобильниках

SkyFire, тот самый браузер, который давным-давно обещал поддержку любого флеша, добрался-таки до публичной бета-версии (предыдущие беты были доступны только в США, привязывались к американскому номеру телефона и т п), причем сразу для 2 платформ: Windows Mobile 5/6 и Symbian S60, с поддержкой VGA и QVGA экранов (320х240 и 640х480 соответственно). Как “счастливого” обладателя Toshiba G900 с WVGA, меня это не очень обрадовало, но попробовать ничто не мешало;)

Шаг 1. Установка.

Так как американского номера у меня нет, а опция “установить через PC”, описанная в pdf на сайте, на самой странице скачки отсутствует, пришлось воспользоваться 3им способом: зайти с телефона. Как оказалось, Opera Mobile 9.5 beta 2 не распознается сайтом как мобильный браузер, в связи с чем пришлось открыть мобильный IE:) После скачки и установки 584-килобайтного cab-файла Skyfire радостно заявил, что мое разрешение экрана не поддерживается. Поставленная с новой прошивкой телефона WVGAfix2 помогла ему передумать (переключилось на 640х480, ценой образования черной полосы внизу экрана)

Шаг 2. Первое впечатление.

При старте браузер разумно предупреждает, что, во-первых, он использует много трафика, а во-вторых, Россия не является основным регионом его работы, и качество не гарантируется. Трафика ест оно действительно прилично: по аналогии с Opera Mini используется прокси, но вместо того, чтобы сжимать страницы, он шлет графическое представление их содержимого, и, при необходимости, аудиопоток (последнее можно отключить). Возникает логичный вопрос о частоте обновления экрана. Ответ простой: довольно низкая. Видео идет с частотой несколько кадров в секунду. К аудиопотоку, кстати, претензий нет, все очень даже неплохо. Интерфейс браузера напоминает Opera Mobile 9.5, только чуть более “квадратный”. Кроме обычных действий типа увеличения зоны экрана и добавления в закладки есть и социальные функции типа Share via SMS. Отзывчивость интерфейса приемлимая, но могло бы быть быстрее.

Шаг 3. Flash

Поддержка флеш не идеальна, но лучше, чем во всем остальном, что есть под WinMobile.

- papervision3d.org - красота, рыбки плавают:)

- Youtube: плеер отображается, видео играет, звук есть. При перемещении по увеличенному экрану некоторые куски видео не обновляются, при полной видимости видео претензий, кроме довольно низкого fps, нет.

- http://flex.org/showcase/ - успешно отображается и работает

- Игра про елку - успешно запустилась (см. фото в начале)

Дальше - сложнее. Прямые ссылки на swf нормально работать заставить не удалось: появляется либо необновляющийся кадр, либо вообще ничего. На сайте adobe видеореклама во флеше отображается, демки под flash player 10 - нет. Далее, может быть у меня не хватило таланта, но за несколько минут двойной щелчок по флешовому элементу мне выполнить не удалось - срабатывает skyfire-ский zoom. Флешки, внедренные с swfobject, распознаются не всегда. На newgrounds игры запустить не удалось - вылезает пустой pop-up. deeplinking, кстати, тоже не работает.

Выводы: как минимум, это пригодное для использования решение. Но пригодно только для ограниченных задач, так как подразумевается работа через wifi, и желательно безлимитный. Flex-приложения, не требующие двойных щелчков, вполне удобны в обращении, но нужно учитывать размер экранов устройств. И вышеупомнянутая проблема нерабочего deeplinking. Таким образом, как мне кажется, SkyFire можно рассматривать как обеспечение ограниченной доступности flash 9 на мобильных устройствах, что, с учетом того, что ждать настоящего flash player 10 для мобильных еще ориентировочно год, не может не радовать:)


2009-01-09

13:03:33, Flash-ripper.com
Конвертирование AS3 в AS2 (и AS2 в AS3)

Браты! Если с вами случилось несчастье и после двух лет дружбы с ActionScript3 по какой-то необъяснимой причине нужно переписать AS3-код на AS2, то знайте: вы не одни. Более того — один из потерпевших уже написал об этом хорошую статью: Сonverting AS3 to AS2. За ссылку я благодарю Илью 'AlFer' Сегеду.

С другой стороны, в этот один из предстароновогодних дней всем, кто пока еще пишет на AS2 (sic!) (о горе, горе) мы даем ссылки прямо противоположного назначения, еще 2006 года выпуска:

Как превратить AS2 в AS3

Пользуясь блогом, хочу пожелать строгой типизации и мягкой, добродушной отладки вам, браты!


01:51:00, Flash-разработка
Что можно сделать с классом из подгружаемой SWF-библиотеки
А вот меня давно интересовал такой вопрос: можно ли подменить/модифицировать класс из подгруженного SWF, который был ассоциирован (или не был ассоциирован но определен по умолчанию) с клипом по средством "Export for ActionScript"?
Если не ошибаюсь, в ActionScript 2 такая возможность была.

Цель моей задачи такова: в некотором таймлайне подгружаемого SWF периодически появляется клип. При его появлении, с ним необходимо проделать какие-то действия.
В обычных условиях, с этим клипом ассоциируется класс (лежащий по соседству с FLA), в конструкторе которого и производятся эти действия.
Но вся прелесть-то в том, чтобы не было никаких скриптов ни в таймлайне, ни рядом с FLA. А всё что нужно делало бы загружающее этот SWF приложение - добавляло необходимый функционал подгруженному клипу.

Перерыл хелп и гугл - безрезультатно... Может быть не там искал. В итоге, модифицировать класс внешней библиотеки во время исполнения (бестолковое свойство prototype не в счет), либо подменить его не получилось, и ничего подходящего найти не смог.

Пока пойду обычным путем - класс клипа в конструкторе будет кидать событие с бабблингом: "Как получать сообщения от внедряемых/подгружаемых SWF. AS3".

* * *

Огромное спасибо BlooDHounD (см. комментарии). Его совет действительно работает.
Опробовал два метода:

  1. Класс, в подгружаемом SWF, задается в поле "Class" диалога "Linkage properties" для нашего клипа:
    classes.intrinsic.AssetCreationDispatcher
    При этом, никаких файлов классов поблизости с FLA создавать не требуется - класс создается "по умолчанию" (intrinsic - я назвал пакет этим словом, т.к. представленный метод мне отдаленно напомнил одноименный механизм в ActionScript 2.0).
    Затем, в загружающем приложении, я определяю класс classes.intrinsic.AssetCreationDispatcher но уже реальный, с необходимым кодом в AS-файле (в моем случае, это извещение приложения о создании клипа).
    Приложение загружает SWF, и при каждом появлении клипа в таймлайне ловит события от создающегося клипа, что показывает trace(
    ObjectUtil.getClassInfo(event.target).name)
    :
    classes.intrinsic::AssetCreationDispatcher
  2. Класс, в подгружаемом SWF, задается в поле "Base class" диалога "Linkage properties" для нашего клипа:
    classes.intrinsic.AssetCreationDispatcher
    Поле "Class" содержит имя класса "TestClip1".
    Создаю также другой клип с именем класса "TestClip2", и тем же "Base class".
    Приложение загружает SWF, и при каждом появлении вышеперечисленных клипов в таймлайне, в ловит события от создающегося клипа. Trace показывает уже:
    TestClip1
    TestClip2

Еще одна приятная возможность, которую дает нам такой прием:
Мы можем определить в классе-заглушке клипа загружаемого SWF ряд пустых методов (можно сказать интерфейс), а в рабочем классе загружающего приложения - этот же набор методов со всем необходимым кодом. В таймлайне наших клипов мы можем вызывать эти методы в любом месте, где только захотим, и они будут отрабатываться нашим главным приложением в соответствии с его кодом.
Конечно, для случая №1, все-таки нужно будет создать соответствующий AS-файл, иначе компилятор не пропустит вызовы неопределенных методов. Однако, для случая №2, создавать методы-заглушки даже не потребуется - компилятор пропускает такие вызовы. Ошибка времени исполнения будет генерироваться только в случае автономного выполнения загружаемого SWF. Но при выполнении его, будучи загруженным в приложение (которое, конечно, реализует весь набор методов), всё работает корректно.

Кроме того, важно, чтобы "совмещаемые" классы имели полностью эквивалентные имена, пакеты и цепочки вложенности пакетов. Иначе, они будут расцениваться как разные классы и не будут "совмещаться". И, конечно, загрузка производится в ApplicationDomain.currentDomain.
Еще одно важное замечание. Версия класса, которая включается в приложение, должна быть задействована каким-либо образом в коде приложения, иначе класс при компиляции не будет включен в приложение. Для этого, я сделал статический метод register(), который вызываю при инициализации приложения. Этот метод может ничего не делать - важно, что при наличии его вызова, класс будет внедрен в приложение при компиляции.

Еще одна достопримечательность этого метода: различные приложения, загружающие подготовленные таким способом SWF, могут реализовывать заготовленные в нем интерфейсы по-своему.

Еще раз спасибо BlooDHounD :). Вот что интересно - ведь такой подход имеет место быть не случайно, иначе, наверняка бы было предусмотренно какое-нибудь исключение, сообщающее о конфликте имен классов. Скорее всего, эта возможность даже имеет какое-нибудь название. Объяснение работоспособности этого подхода объясняется в документации к LoaderContext.applicationDomain (возможно объяснение есть где-то еще):
"Loader's own ApplicationDomain.
You use this application domain when using ApplicationDomain.currentDomain. When the load is complete, parent and child can use each other's classes directly. If the child attempts to define a class with the same name as a class already defined by the parent, the parent class is used and the child class is ignored.
" Другими словами, если существует конфликт имен классов, класс из загружаемого контента игнорируется.

* * *

Любопытная бага (предвидел, что будет что-то неладное). Оказывается слово intrinsic во Flex всё еще является ключевым (хотя в ActionScript 2.0 Migration про него написано, что его удалили) и выделяется жирным шрифтом. Любопытно, что автокомплит никак не хочет нормально работать с пакетами, обозванными этим именем, а в import-ах вообще начинает творится бардак. Лучше от него избавиться - может оно и к лучшему - тут подойдет что-нибудь типа classes.templates.
Кстати, порой приходится долго ломать голову над тем, как назвать тот или иной пакет/класс/метод/переменную. Иногда, размышляя над какой-нибудь сущностью (и вкапываясь в Lingvo), можно убить больше часа. Но оно стоит того.


2009-01-08

13:44:30, Flash-ripper.com
Сертификат издателя AIR-приложений: пока только для США, но очень скоро и в Европе

Позавчера, 6 января 2009 г., мы писали о новой возможности сертификации индивидуальных издателей AIR-приложений. Тогда же, недолго думая, я решил проверить как это работает и отправил факсом паспорт и подписанную форму запроса сертификата. Сегодня получил письмо:

Dear Mr. Siryk,
thank you for your interest in our products.
We are sorry but we can not issue the certificate which you have requested with the no. ########.
This product is dedicated only for the US market.
The product for the European market will follow soon. We are planning to launch it next week on Tuesday or Wednesday. Please have a look at this product site: http://www.trustcenter.de/en/products/tc_publisher_id_for_adobe_air.htm
Right now you will find an offer for organizations, but next week you will find an offer for individual signers. Please make a new order when the new product is available.
Best regards,
[длинная подпись с адресами и телефонами]

Так что со следующей недели — сертификация и для нас, не-американцев.


Предыдущие 30 | Следующие 30