Flex и RIA блоги
2009-01-25 |
Админка для Flash галереиТеперь каждый сможет настроить фото галерею под себяВсем привет. Недавно я сделал админку для свой flash галереи, которую распространяю бесплатно. Теперь вам не прийдётся скачивать файлы и в ручную править XML, для настройки галереи всего и потребуется, что читать пояснения к пунктам настройки, да правильно выбирать нужные параметры. Скажу честно: дело не сложное, и его сможет сделать каждый. Бесплатная Flash галерея » |
2009-01-23 |
А как Вы перебираете элементы массива? ВНЕЗАПНО обнаружил, что для обработки массивов в AS3 пользуюсь давно уже устаревшим методом, перебирая значения в цикле 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}); Я думаю, что проблема здесь не только в моем длинном тормозном пути, но и в документации, которая несколько суховата, а методы полезные. Кстати, по первой ссылке - образцовый туториал по всем этим методам. Интересно, сктолько опечаток я сделал в этот раз :) |
Вакансия Flash-программист, Excelior, Москва В компанию Excelior требуется flash-программист. Требования:
Будет плюсом:
Зарплата: 55 000 рублей и выше, по результатам собеседования. Связыватся по: P.S. Если вдруг что, пинать Nirth'a а не Роста, публиковал я =) |
Вакансия Flash-программиста, Москва В компанию Excelior требуется flash-программист. Основные требования: Будет плюсом: Зарплата - по результатам собеседования. Контакты: |
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 |
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 |
Встреча 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 |
Спецификация RTMP открывается Adobe обьявила об открытии спецификации RTMP-протокола в 1ой половине 2009 года. Не прошло и нескольких лет, да. Теперь вместо сырой спецификации, полученной энтузиастами в результате исследования пакетов данных rtmp, будет полноценная документация, с учетом работы с h264-видео, что также радует. Адобовские механизмы шифрования раскрыты не будут, что логично. Ограничений на создание собственных механизмов защиты контента обещают не делать, что радует. К сожалению, о раскрытии спецификации p2p-протоколов, использующихся в 10м плеере, речи пока не идет. |
2009-01-20 |
RiaStats.com — узнать где и сколько плагинов установлено Дима Кочетов прислал полезную ссылку: на сайте riastats.com ведется статистика по распространению популярных плагинов сети: Flash Player и Silverlight. Там вы не только можете узнать текущую статистику по общей распространенности плагинов, но и заполучить виджет для своего сайта. И этим получить дополнительную возможность повлиять на статистику, а также получать персонализированные отчеты по своему собственному сайту. Кстати, общая статистика на 20 января 2009 года приятна: Flash Player 10 уже установлен на 44 процентах машин, а Sliverlight 2 доминирует над Silverlight 1, вместе они уже присутствуют на 16% компьютеров. Статистика собрана за последние тридцать дней по более чем полумиллиону ЭВМ. |
Последние флэшеры покидают РБК СОФТ. Прощальные заметки, итоги Всем уже известно, как кризис обошелся с РБК. Последние несколько месяцев, мы с любопытством наблюдали, как тонет этот гигант. Наверное, было не так уж плохо, когда, около 2х лет назад, РБК СОФТ и несколько других IT-компаний были отделены и собраны в холдинг Армада. Поэтому, кризис до нас добрался не так быстро. Но он добрался до нас. Об этом конечно все знали. Осенью начались сильные перемены на верхах, ушли многие из руководства. Еще не кончился 2008-й год, а РБК СОФТ провел жесткие сокращения во всех своих подразделениях. В частности, не особо церемонясь, попрощался со своим отделом дизайна департамента интернет проектов. От прекрасной команды топовых дизайнеров осталось два-три человека. Я плохо понимаю, да и не очень хочется, что явилось причиной такого шага. Простые оправдания - кризис, убыточность, нерентабельность и т.п. Про сокращение зарплат вообще молчу, хотя, как говорят, 15% - не так уж и много. Сокращения так же коснулись и отдела мультимедиа-презентаций, который я, собственно, представлял до конца прошлого года. После сокращения части флэшеров и специалистов по 3D- и видео-анимации, нас осталось только двое. Начало 2009 года принесло новые сокращения. И вот, вчера было объявлено решение о сокращении флэшеров. Мой напарник уходит уже через одну-две недели. Мне дали больше времени - около месяца. Конечно, жаль расставаться с устоявшимся образом жизни, после 3-х лет стабильной работы. Не могу сказать, что в РБК СОФТ было плохо. За время, которое я здесь работал, я приобрел огромный опыт и знания, хороших друзей, наработал приличный портфель. Работа, которой я занимался, во многом требовала творческого подхода. Несмотря на большие объемы и часто жесткие сроки, было достаточно времени на обучение и развитие. Хотя, не скажу конечно, что компания выделяла большие средства на повышение квалификации - это делалось со скрипом. Подводя итоги своей работы в РБК СОФТ, хочется сказать, что пересмотреть результаты своей деятельности приятно:
Забавно... Пост плавно преобразовался в нечто похожее на резюме или портфолио. Конечно это далеко не все работы, которые были сделаны в стенах РБК СОФТ. Кроме того, еще столько же было сделано на фрилансе, но об этом сейчас речь не идет. Жизнь продолжается, ухожу в свободное плавание. Что будет дальше - время покажет... Было и хорошее и плохое, и интересные проекты и не интересные, и удачи и провалы. Главное - прекрасные люди, с которыми я работал в команде. Кто-то сейчас еще в стенах РБК-СОФТ, кто-то давно ушел или попал под сокращение. Нам еще предстоит много работать вместе, но сейчас хочу сказать им всем огромное спасибо. Несмотря на развал, все кризисы и прочий негатив, в памяти остались только самые хорошие воспоминания. |
Последние флэшеры покидают РБК СОФТ. Прощальные заметки, итоги Всем уже известно, как кризис обошелся с РБК. Последние несколько месяцев, мы с любопытством наблюдали, как тонет этот гигант. Наверное, было не так уж плохо, когда, около 2х лет назад, РБК СОФТ и несколько других IT-компаний были отделены и собраны в холдинг Армада. Поэтому, кризис до нас добрался не так быстро. Но он добрался до нас. Об этом конечно все знали. Осенью начались сильные перемены на верхах, ушли многие из руководства. Еще не кончился 2008-й год, а РБК СОФТ провел жесткие сокращения во всех своих подразделениях. В частности, не особо церемонясь, попрощался со своим отделом дизайна департамента интернет проектов. От прекрасной команды топовых дизайнеров осталось два-три человека. Я плохо понимаю, да и не очень хочется, что явилось причиной такого шага. Простые оправдания - кризис, убыточность, нерентабельность и т.п. Про сокращение зарплат вообще молчу, хотя, как говорят, 15% - не так уж и много. Сокращения так же коснулись и отдела мультимедиа-презентаций, который я, собственно, представлял до конца прошлого года. После сокращения части флэшеров и специалистов по 3D- и видео-анимации, нас осталось только двое. Начало 2009 года принесло новые сокращения. И вот, вчера было объявлено решение о сокращении флэшеров. Мой напарник уходит уже через одну-две недели. Мне дали больше времени - около месяца. Конечно, жаль расставаться с устоявшимся образом жизни, после 3-х лет стабильной работы. Не могу сказать, что в РБК СОФТ было плохо. За время, которое я здесь работал, я приобрел огромный опыт и знания, хороших друзей, наработал приличный портфель. Работа, которой я занимался, во многом требовала творческого подхода. Несмотря на большие объемы и часто жесткие сроки, было достаточно времени на обучение и развитие. Хотя, не скажу конечно, что компания выделяла большие средства на повышение квалификации - это делалось со скрипом. Подводя итоги своей работы в РБК СОФТ, хочется сказать, что пересмотреть результаты своей деятельности приятно:
Забавно... Пост плавно преобразовался в нечто похожее на резюме или портфолио. Конечно это далеко не все работы, которые были сделаны в стенах РБК СОФТ. Кроме того, еще столько же было сделано на фрилансе, но об этом сейчас речь не идет. Жизнь продолжается, ухожу в свободное плавание. Что будет дальше - время покажет... Было и хорошее и плохое, и интересные проекты и не интересные, и удачи и провалы. Главное - прекрасные люди, с которыми я работал в команде. Кто-то сейчас еще в стенах РБК-СОФТ, кто-то давно ушел или попал под сокращение. Нам еще предстоит много работать вместе, но сейчас хочу сказать им всем огромное спасибо. Несмотря на развал, все кризисы и прочий негатив, в памяти остались только самые хорошие воспоминания. |
2009-01-19 |
Сохраняем звук с микрофона на сервер Сегодня на повестке дня стоит вопрос - как записать звук и сохранить его на сервер при помощи Flash. Задача с первого взгляда простая, попробуем-ка с ней разобраться. Для начала, поглядим, что скажет наши самые близкие помощники - Adobe Flex 3 Help и Adobe® Flex™ 3 Language Reference: Главная статья о работе со звуком. Тут мы проваливаемся в Capturing sound input и смотрим, как получить звук с микрофона и что, собственно, можно сделать с этим звуком. Итак, Microphone - класс, который нам позволит записать звук с нашего микрофона.
Вот, собственно и вся теория. Переходим к практике. Для начала, пошуршим по Гуглу на предмет нашего вопроса. Как я понимаю, нас интересуют серверы, которые обеспечивают потоковую передачу данных по средством протокола RTMP или Real Time Messaging Protocol. Вот информация о медиа-серверах:
Итак, рассмотрем претендентов на использование в качестве сервера: Flash Media Server: Wowza: Относительно свежий, годичной давности, сервер. Не бесплатный, но все же на много дешевле (Wowza Media Server Pro...имеет более гуманную лицензионную модель) чем FMS медиа-сервер. Русскоязычной информации по серверу не так много, а документации, предоставленной на сайте, вполне достаточно. RED5: Самый популярный опенсорсный медиа-сервис. Информации про него - море, хотя на сайтах проекта черт ногу сломит. Есть довольно кривая документация в PDF. Кстати, любопытный факт. SmartFox Server так же позволяет работать с потоковыми видео и аудио. Отвечает за это дело, некий модуль, именуемый RedBOX, который базируется, как вы уже догадались, на Red5 project. Модуль этот, само собой, бесплатный, так что, при желании, можно организовать видео-аудио общение игроков в процессе онлайн-игры. И с документацией тоже всё в порядке. Что тут говорить - молодцы, здорово подсуетились. haXeVideo: Многопоточный сервер, осуществляющий управление FLV-видеопотоками. Это совсем свежий, конечно же бесплатный, сервер, полностью написанный на haXe, легкий, не требовательный к производительности сервера, и очень масштабируемый. Вот Официальный релиз haxeVideo 1.0. Собственно, никаких видимых сложностей для использования сервера нет - это можно наблюдать в небольшом туторе Пробуем haxeVideo. Как видно из примера, серверная часть не потребовала ни сложного конфигурирования, ни программирования. Однако, мы наблюдали появление FLV-видео, а вот как насчет, к примеру MP3? Поиски привели к какой-то почтовой переписке, но я так с ней и не разобрался. Вообще, информации пока мало, но это не значит, что сервер haXeVideo не является достойным решением. Mammoth - The Open Source Flash Streaming Server. А вот к примеру, интересно посмотреть, как реализуется простой PHP-streaming. Kaltura. Это целая опенсорсная видео-платформа (как нам рассказывает OSFlash). Она позволяет интегрировать в любой сайт множество интерактивных медийных наворотов с полной поддержкой онлайн-видео. Говорят, можно легко инсталлировать модули на такие веб-платформы как MediaWiki, WordPress, Drupal, Joomla и тд. И на ней сидят такие сайты как MySpace, YouTube, Flickr, ccMixter, Jamendo, и даже The New York Public Library.
Интересно, на сколько всё это понятно и бесплатно. Короче, надо смотреть, тут море информации. В русскоязычном интернете я кроме новостей и анонсов ничего толком не нашел. Может быть не там искал? На этом пока обзор закончу, но по мере появления информации, буду делать апдейты. Выводы делать еще рано, но в любом случае, какое-то решение будет принято. |
Сохраняем звук с микрофона на сервер Сегодня на повестке дня стоит вопрос - как записать звук и сохранить его на сервер при помощи Flash. Задача с первого взгляда простая, попробуем-ка с ней разобраться. Для начала, поглядим, что скажет наши самые близкие помощники - Adobe Flex 3 Help и Adobe® Flex™ 3 Language Reference: Главная статья о работе со звуком. Тут мы проваливаемся в Capturing sound input и смотрим, как получить звук с микрофона и что, собственно, можно сделать с этим звуком. Итак, Microphone - класс, который нам позволит записать звук с нашего микрофона.
Вот, собственно и вся теория. Переходим к практике. Для начала, пошуршим по Гуглу на предмет нашего вопроса. Как я понимаю, нас интересуют серверы, которые обеспечивают потоковую передачу данных по средством протокола RTMP или Real Time Messaging Protocol. Вот информация о медиа-серверах:
Итак, рассмотрем претендентов на использование в качестве сервера: Flash Media Server: Wowza: Относительно свежий, годичной давности, сервер. Не бесплатный, но все же на много дешевле (Wowza Media Server Pro...имеет более гуманную лицензионную модель) чем FMS медиа-сервер. Русскоязычной информации по серверу не так много, а документации, предоставленной на сайте, вполне достаточно. RED5: Самый популярный опенсорсный медиа-сервис. Информации про него - море, хотя на сайтах проекта черт ногу сломит. Есть довольно кривая документация в PDF. Кстати, любопытный факт. SmartFox Server так же позволяет работать с потоковыми видео и аудио. Отвечает за это дело, некий модуль, именуемый RedBOX, который базируется, как вы уже догадались, на Red5 project. Модуль этот, само собой, бесплатный, так что, при желании, можно организовать видео-аудио общение игроков в процессе онлайн-игры. И с документацией тоже всё в порядке. Что тут говорить - молодцы, здорово подсуетились. haXeVideo: Многопоточный сервер, осуществляющий управление FLV-видеопотоками. Это совсем свежий, конечно же бесплатный, сервер, полностью написанный на haXe, легкий, не требовательный к производительности сервера, и очень масштабируемый. Вот Официальный релиз haxeVideo 1.0. Собственно, никаких видимых сложностей для использования сервера нет - это можно наблюдать в небольшом туторе Пробуем haxeVideo. Как видно из примера, серверная часть не потребовала ни сложного конфигурирования, ни программирования. Однако, мы наблюдали появление FLV-видео, а вот как насчет, к примеру MP3? Поиски привели к какой-то почтовой переписке, но я так с ней и не разобрался. Вообще, информации пока мало, но это не значит, что сервер haXeVideo не является достойным решением. Mammoth - The Open Source Flash Streaming Server. А вот к примеру, интересно посмотреть, как реализуется простой PHP-streaming. Kaltura. Это целая опенсорсная видео-платформа (как нам рассказывает OSFlash). Она позволяет интегрировать в любой сайт множество интерактивных медийных наворотов с полной поддержкой онлайн-видео. Говорят, можно легко инсталлировать модули на такие веб-платформы как MediaWiki, WordPress, Drupal, Joomla и тд. И на ней сидят такие сайты как MySpace, YouTube, Flickr, ccMixter, Jamendo, и даже The New York Public Library.
Интересно, на сколько всё это понятно и бесплатно. Короче, надо смотреть, тут море информации. В русскоязычном интернете я кроме новостей и анонсов ничего толком не нашел. Может быть не там искал? На этом пока обзор закончу, но по мере появления информации, буду делать апдейты. Выводы делать еще рано, но в любом случае, какое-то решение будет принято. * * * Понемножку просматриваю ресурсы по медиа-серверам. Читая про Red5, выяснил, что писать звук с клиента в формате MP3 он не умеет, по причине того, что Flash player поддерживает только аудио-формат NellyMoser, а сервер всего лишь снимает входящий поток. Утилит под Linux для транскодирования NellyMoser по-видимому нет. Еще информация по записи звука Red5: Flash Media Server and Red5 Resources. * * * Добрался до конвертации flv -> mp3. По этой теме есть следующие идеи: Converting audio FLV file to MP3?, где предлагается конвертировать NellyMoser в WAV, а затем уж в MP3, что не вызывает проблем. А решается это при помощи следующего инструмента: nellynomore. Работает ли это или нет - не могу сказать. Скоро узнаем. * * * Информация о установке RED5 на FreeBSD: * * * haxeVideo и FreeBSD: * * * rubyizumi |
2009-01-18 |
Как сохранить из Flash изображение II Продолжаем совершенствование технологий, и подбираем новый метод сохранения изображений на сервер. Шуршим по гуглу и отвергаем посты, старше 2007-го года. Итак, ссылок море, но все сводится к одному простому решению: Смысл прост - снимается 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 позже. Других объяснений я не нахожу. Кстати, Еще одна статья "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", всё встало на свое место. |
Как сохранить из Flash изображение II Продолжаем совершенствование технологий, и подбираем новый метод сохранения изображений на сервер. Шуршим по гуглу и отвергаем посты, старше 2007-го года. Итак, ссылок море, но все сводится к одному простому решению: Смысл прост - снимается 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 позже. Других объяснений я не нахожу. Кстати, Еще одна статья "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 |
Некоторые пояснения по синтаксису ActionScript 3. Не смотря на то, что посл делался в Октябре 2005 года, он все еще полезен, особенно если учесть что Adobe до сих пор не внесла некоторые пояснения в help. Пост написал Пол Робертсон (Paul Robertson), работает в Adobe в качестве Sr. ActionScript Developer/Writer for the Platform Developer Documentation team. Блог у него довольно полезный. Сами пояснения читать тут. |
Некоторые пояснения по синтаксису ActionScript 3. Не смотря на то, что пост делался в Октябре 2005 года, он все еще полезен, особенно если учесть что Adobe до сих пор не внесла некоторые пояснения в help. Пост написал Пол Робертсон (Paul Robertson), работает в Adobe в качестве Sr. ActionScript Developer/Writer for the Platform Developer Documentation team. Блог у него довольно полезный. Сами пояснения читать тут. |
Некоторые пояснения по синтаксису ActionScript 3. Не смотря на то, что пост делался в Октябре 2005 года, он все еще полезен, особенно если учесть что Adobe до сих пор не внесла некоторые пояснения в help. Пост написал Пол Робертсон (Paul Robertson), работает в Adobe в качестве Sr. ActionScript Developer/Writer for the Platform Developer Documentation team. Блог у него довольно полезный. Сами пояснения читать тут. |
Лучшие сайты 2008 года: прекрасно, ужасно, уютно, страшно По версии поступившего в продажу FWA лучшими флэш-сайтами 2008 года стали два сайта: 1. Прекрасный трехмерный 300парк The Eco Zoo в категории "Site Of The Year" по выбору FWA:
2. Ужасный отель Hotel626 — признан лучшим по итогам народного голосования: Глядя на победителей, как никогда остро осознаешь инфантильность любимой технологии. О, уютная флэш-песочница с симпатичными трехмерными игрушечулечками и пугающими до смерти шестьсотдвадцатьшестыми отелями — я ни на что тебя не променяю! |
2009-01-14 |
Компоненты ILOG Elixir 1.0 Beta доступны для скачивания ILOG Elixir — это библиотека компонентов визуализации данных для приложений Flex и Adobe AIR. В феврале 2008 г. одновременно с Flex 3 вышел набор ILOG Elixir 1.0, а в начале 2009 года выйдет ILOG Elixir 2.0, бета-версия которого доступна сейчас. Она состоит из 11 компонентов:
Хотите попробовать в работе? Можно скачать компоненты ILOG Elixir 2.0 Beta. // via a_[w] |
Prettyloaded.com — прелоадер на прелоадере Коллекции прелоадеров и даже конкурс на идеальный прелоадер — это мы уже видели. Но еще никогда проект демонстрации предварительной загрузки не исполнялся с такой концептуальной чистотой: разнообразные прелоадеры бесконечно загружают друг друга на специально отведенном сайте prettyloaded.com. Можно почерпнуть немало вдохновения. Удивительно, сколькими конкретными способами можно изобразить абстрактную идею прогресса. |
2009-01-13 |
Сайт Favorite Website Awards выставлен на продажу Сегодня пришло сообщение о том, что поступил в продажу The FWA, любимый ресурс флэшеров и дизайнеров. Если вы заинтересованы в данном вопросе или можете представлять заинтересованную в этом вопросе компанию, то можно написать по адресу teamfwa@thefwa.com. И даже если вы не заинтересованы в покупке FWA, то все равно можете узнать кое-что полезное: например, статистику посещений сайта Favourite Website Awards за все время с мая 2000 года по октябрь 2008. Кстати, в октябре 2008 года на сайт зашло 357,956 уникальных посетитетелей. Можно почитать, как британские авторы FWA расписывают его товарные качества — может пригодиться. Пожелаем The FWA попасть в хорошие руки! И — с наступающим вас по юлианскому :-) |
2009-01-12 |
Будем знакомы - Pivot Pivot - это открытая платформа для разработки RIA на Java. Она сочетает в себе производительность и юзабилити всех современных RIA-фреймворков и мощь Java-платформы. Как Flex и Silverlight, Pivot обладает свойствами, благодаря которым создавать GUI приложения достаточно легко: декларативный UI, связывание данных, различные эффекты, интеграцию с веб-сервисами и т.п. Страница проекта Демки Загрузки Уроки Более подробный обзор. Использование JavaScript внутри Pivot |
Будем знакомы - Pivot Pivot - это открытая платформа для разработки RIA на Java. Она сочетает в себе производительность и юзабилити всех современных RIA-фреймворков и мощь Java-платформы. Как Flex и Silverlight, Pivot обладает свойствами, благодаря которым создавать GUI приложения достаточно легко: декларативный UI, связывание данных, различные эффекты, интеграцию с веб-сервисами и т.п. Страница проекта Демки Загрузки Уроки Более подробный обзор. Использование JavaScript внутри Pivot |
Будем знакомы - Pivot Pivot - это открытая платформа для разработки RIA на Java. Она сочетает в себе производительность и юзабилити всех современных RIA-фреймворков и мощь Java-платформы. Как Flex и Silverlight, Pivot обладает свойствами, благодаря которым создавать GUI приложения достаточно легко: декларативный UI, связывание данных, различные эффекты, интеграцию с веб-сервисами и т.п. Страница проекта Демки Загрузки Уроки Более подробный обзор. Использование JavaScript внутри Pivot |
Казуал Коннект в Гамбурге — с участием флэшеров Вадим Старыгин готовит встречу разработчиков игр в Гамбурге. Место проведения встречи: Время: Конференция будет проходить с 10 по 12 февраля. На третий день (12) флэшеры имеют право бесплатного входа на конференцию — Вадим зовет поучаствовать в событии. Если вы хотите выступить с презентацией или лекцией — напишите Вадиму. Немного больше информации можно найти в его англоязычном блоге и на сайте europe.casualconnect.org. Регистрироваться здесь. |
2009-01-10 |
Skyfire beta: (почти) полноценный флеш на мобильниках
Шаг 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 |
Конвертирование AS3 в AS2 (и AS2 в AS3) Браты! Если с вами случилось несчастье и после двух лет дружбы с ActionScript3 по какой-то необъяснимой причине нужно переписать AS3-код на AS2, то знайте: вы не одни. Более того — один из потерпевших уже написал об этом хорошую статью: Сonverting AS3 to AS2. За ссылку я благодарю Илью 'AlFer' Сегеду. С другой стороны, в этот один из предстароновогодних дней всем, кто пока еще пишет на AS2 (sic!) (о горе, горе) мы даем ссылки прямо противоположного назначения, еще 2006 года выпуска: Как превратить AS2 в AS3
Пользуясь блогом, хочу пожелать строгой типизации и мягкой, добродушной отладки вам, браты! |
Что можно сделать с классом из подгружаемой SWF-библиотеки А вот меня давно интересовал такой вопрос: можно ли подменить/модифицировать класс из подгруженного SWF, который был ассоциирован (или не был ассоциирован но определен по умолчанию) с клипом по средством "Export for ActionScript"? Если не ошибаюсь, в ActionScript 2 такая возможность была. Цель моей задачи такова: в некотором таймлайне подгружаемого SWF периодически появляется клип. При его появлении, с ним необходимо проделать какие-то действия. В обычных условиях, с этим клипом ассоциируется класс (лежащий по соседству с FLA), в конструкторе которого и производятся эти действия. Но вся прелесть-то в том, чтобы не было никаких скриптов ни в таймлайне, ни рядом с FLA. А всё что нужно делало бы загружающее этот SWF приложение - добавляло необходимый функционал подгруженному клипу. Перерыл хелп и гугл - безрезультатно... Может быть не там искал. В итоге, модифицировать класс внешней библиотеки во время исполнения (бестолковое свойство prototype не в счет), либо подменить его не получилось, и ничего подходящего найти не смог. Пока пойду обычным путем - класс клипа в конструкторе будет кидать событие с бабблингом: "Как получать сообщения от внедряемых/подгружаемых SWF. AS3". * * * Огромное спасибо BlooDHounD (см. комментарии). Его совет действительно работает. Опробовал два метода:
Еще одна приятная возможность, которую дает нам такой прием: Кроме того, важно, чтобы "совмещаемые" классы имели полностью эквивалентные имена, пакеты и цепочки вложенности пакетов. Иначе, они будут расцениваться как разные классы и не будут "совмещаться". И, конечно, загрузка производится в ApplicationDomain.currentDomain. Еще одна достопримечательность этого метода: различные приложения, загружающие подготовленные таким способом SWF, могут реализовывать заготовленные в нем интерфейсы по-своему. Еще раз спасибо BlooDHounD :). Вот что интересно - ведь такой подход имеет место быть не случайно, иначе, наверняка бы было предусмотренно какое-нибудь исключение, сообщающее о конфликте имен классов. Скорее всего, эта возможность даже имеет какое-нибудь название. Объяснение работоспособности этого подхода объясняется в документации к LoaderContext.applicationDomain (возможно объяснение есть где-то еще): * * * Любопытная бага (предвидел, что будет что-то неладное). Оказывается слово intrinsic во Flex всё еще является ключевым (хотя в ActionScript 2.0 Migration про него написано, что его удалили) и выделяется жирным шрифтом. Любопытно, что автокомплит никак не хочет нормально работать с пакетами, обозванными этим именем, а в import-ах вообще начинает творится бардак. Лучше от него избавиться - может оно и к лучшему - тут подойдет что-нибудь типа classes.templates. |
2009-01-08 |
Сертификат издателя AIR-приложений: пока только для США, но очень скоро и в Европе Позавчера, 6 января 2009 г., мы писали о новой возможности сертификации индивидуальных издателей AIR-приложений. Тогда же, недолго думая, я решил проверить как это работает и отправил факсом паспорт и подписанную форму запроса сертификата. Сегодня получил письмо: Dear Mr. Siryk, Так что со следующей недели — сертификация и для нас, не-американцев. |