Flex и RIA блоги



2008-01-27

16:56:33, Flash-ripper.com
Лучшие Flex-приложения рунета — все в одном

Костя Ковалев придумал собрать все флекс-приложения рунета в одном месте.

Сейчас это просто запись в блоге, в комментариях которой можно указать флекс-проект. А в перспективе это превратится в серьезный ресурс, отображающий флекс-потенциал рунета. Хорошо было бы иметь такую информацию под рукой, чтобы заказчикам показывать? Конечно! Так что не ленитесь, идите и делитесь своими ссылками.


09:03:58, WebService //Flash
Встречаем Adobe Flash Media Server 3!

Меня очень удивило то, что новость о том, что вышел так давно ожидаемый FMS3, не вызвала бурю эмоций. Лично я намучался с разными опенсорсными решениями с их постоянными ошибками и недоработками. Поэтому твердо решил переходить на нормальную платформу с приличной поддержкой.

Итак, что мы имеем?

  • Неограниченное число пользователей и неограниченный пропускной канал;
  • Значительный прирост производительности;
  • Более защищенный видео контент;
  • Поддержка H.264 видео и HE-AAC аудио;
  • Поддержка Live video;
  • Совместимость с Flash Lite 3;

Более подробно о том, что же представляет собой новая линия продуктов Flash Media Server, можно почитать здесь.


09:03:58, WebService //Flash
Встречаем Adobe Flash Media Server 3!

Меня очень удивило то, что новость о том, что вышел так давно ожидаемый FMS3, не вызвала бурю эмоций. Лично я намучался с разными опенсорсными решениями с их постоянными ошибками и недоработками. Поэтому твердо решил переходить на нормальную платформу с приличной поддержкой.

Итак, что мы имеем?

  • Неограниченное число пользователей и неограниченный пропускной канал;
  • Значительный прирост производительности;
  • Более защищенный видео контент;
  • Поддержка H.264 видео и HE-AAC аудио;
  • Поддержка Live video;
  • Совместимость с Flash Lite 3;

Более подробно о том, что же представляет собой новая линия продуктов Flash Media Server, можно почитать здесь.


2008-01-25

18:51:19, LIFE.Flash
Релиз Flash Media Server 3!

Да, совершилось - и это уже не анонс, релиз Flash Media Server 3

Неограниченное число пользователей и неограниченный пропускной канал
Значительный прирост производительности
Более защищенный видео контент
Поддержка H.264 видео и HE-AAC аудио
Поддержка Live video
Совместимость с Flash Lite 3

и многое другое

Скачать триал-версию

P.S. Обязательно попробую связку FMS 3 и Flash Lite 3 :)
P.S.2 Что я там говорил про революцию насчет Flash video? :)

, , ,

15:16:12, Garbage Collector
Новые события в классе NetStream

Если открыть описание класса NetStream на LiveDocs, то можно увидеть свежие правки в документации, датированные вчерашним днем (24.01.2008) — там они отмечены красным шрифтом.

(more…)


14:43:48, Flash-ripper.com
Silverlight vs. Adobe Flash vs. Adobe Flex

Google говорит, что флэш — по прежнему царь горы. Чаще всего Flash и Flex ищут в Индии и СНГ! А вот Silverlight чаще всего ищут в городе Redmond и в Китае. Детали — по клику:


Скриншот 1. Поиск в Google по терминам "silverlight", "adobe flash" и "adobe flex", 26.01.2008.

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

Silverlight против Adobe Flash против Adobe Flex — по Яндексу


График
Пульс блогосферы за год по запросам silverlight, adobe flash и adobe flex

Виджет 1. Поисковая активность в Yandex по терминам "silverlight", "adobe flash" и "adobe-flex" (cегодня).

Кстати, кто ставил апдейт Windows c Silverlight и перезагружался после? Не было странностей?


13:39:02, Flash-ripper.com
Локализация флекс-приложений — лицом к людям

Знаете ли вы, что во Flex 3 локализация приложений стала лучше в разы? Что теперь флекс-приложение может быть скомпилировано под основной язык и подгружать языковые ресурсы для других языков на лету? Что локализуются не только фразы, но и даты, валюта, и т.д. и т.п.? Я упустил эти моменты, а вот Junik — не прошла мимо и написала для нас отличную заметку о локализации во Flex 3. Спасибо тебе, Юля!

Update: Вы уверены, что используете во Flex Builder все возможности кодирования? А знаете ли, что делает шорткат Ctrl + Shift + P?


13:03:24, Constantiner's blog
Список рунетовских Flex-приложений

Adobe Flex LogoТут возникла необходимость собрать все ссылки на Flex-приложения по двум категориям:

  1. Flex-приложения, предназначенные [в том числе и] для Рунета (вернее даже для всего постсоветского пространства). То есть это приложения, которые имеют как минимум русскую (украинскую, казахскую) локализацию. Если известны авторы - можно указывать.


  2. Flex-приложения, сделанные российскими (украинскими, узбекскими) разработчиками. Тоже ссылка и/или описание и, если, есть информация, кто делал.

Все это можно оставлять в комментах в формате:

2. John Pupking Online Store (www.johnpupking.com). Делал Вася Пупкин (www.vasyapupkin.ru).
1. Магазин Васи Пупкина (www.vasyapupkin.ru). Делал Вася Пупкин (www.vasyapupkin.ru).

Цифра 1 означала, что это подпадает под первую категорию. 2 - под вторую. Если под обе, то можно написать так:

1, 2. Магазин Васи Пупкина (www.vasyapupkin.ru). Делал Вася Пупкин (www.vasyapupkin.ru).

Но обычно 1 влечет за собой 2.

Писать можно в комментах, и тогда этой полезной инфой могут воспользоваться все. Либо писать в приват через форму на этом сайте.

Заранее спасибо!

Now playing: Аквариум - Максим-лесник

07:40:16, WebService //Flash
Ожидаем выход FDT 3.0 Enterprise

Как стало известно, мы скоро сможем познакомится с Enterprise-версией FDT 3.0 - популярной среды разработки Flash, а теперь еще и Flex - приложений. По словам разработчиков, в новой версии будет очень мощный отладчик и невероятно удобная система рефакторинга.

Первая версия (без поддержки MXML) ожидается уже в марте 2008 года, а финальный релиз запланирован на 2-3 квартал 2008 года.

FDT 3.0

 

Tags: , , ,


07:40:16, WebService //Flash
Ожидаем выход FDT 3.0 Enterprise

Как стало известно, мы скоро сможем познакомится с Enterprise-версией FDT 3.0 - популярной среды разработки Flash, а теперь ещё и Flex - приложений. По словам разработчиков, в новой версии будет очень мощный отладчик и невероятно удобная система рефакторинга. Первая версия (без поддержки MXML) ожидается уже в марте 2008 года, а финальный релиз запланирован на 2-3 квартал 2008 года.

FDT 3.0

Tags: , , ,


2008-01-24

18:01:00, Flash-разработка
Параметры командной строки ASDoc

-doc-classes path-element [...] - cписок документируемых классов. Эти классы должны располагаться в директории с исходным кодом. Этот параметр используется по умолчанию.

-doc-namespaces uri manifest - список URI (пространства имен), классы которых должны быть документированы. Эти классы должны располагаться в директории с исходным кодом. Необходимо указать URI и место размещения файла, определяющего содержимое пространства имен.

-doc-sources path-element [...] - список документируемых файлов. Если в списке указана директория, происходит рекурсивная обработка ее файлов.

-exclude-classes string - список классов, которые не будут включены в документацию. Необходимо указывать имя каждого усключаемого класса. Аналогично работает тег @private, указанный при комментировании класса - класс не документируется.

-exclude-dependencies true/false - определяет, будут ли документироваться зависимости, найденные компилятором. Если указано true - зависимости вводимых классов не будут документироваться. По умолчанию false.

-footer string - текст в нижней части HTML-страницы.

-left-frameset-width int - целое число, устанавливающее ширину левого фрейма страницы документа. Можно менять это значение с тем, чтобы подстроить фрейм под ширину имен пакетов классов. По умолчанию 210 пикселей.

-main-title "string" - текст в верхней области HTML-страницы. По умолчанию "API Documentation".

-output string - директория, в которой будут размещаться файлы документации. По умолчанию "asdoc-output".

-package name "description" - текст, документирующий пакет классов. Этот параметр можно указывать повторно для описания множества пакетов классов. Например:

asdoc -doc-sources my_dir -output myDoc -package com.my.business "Contains business classes and interfaces" -package com.my.commands "Contains command base classes and interfaces"

-templates-path string - путь к директории с шаблонами ASDoc-документации. По умолчанию, используются шаблоны, размещенные в поддиректории "asdoc/templates" каталога, где установлен ASDoc. Директория содержит файлы HTML, CSS, XSL и файлы изображений, используемы для создания документации.

-window-title "string" - текст на верхней панели окна интернет-браузера. По умолчанию "API Documentation".

Типичная строка для генерирования ASDoc-документации:

asdoc -doc-sources "Путь к файлам исходного кода" -main-title "Название проекта" -output "Каталог с документацией"

10:03:40, Flash-ripper.com
В войне браузеров смертельный урон нанесен веб-стандартам

На главном сайте веб-дизайнеров A List Apart появилась статья о том, что IE8 будет поддерживать специальный мета-тег X-UA-Compatible для корректного рендеринга страниц, созданных ранее для браузеров типа IE6 / IE7. Вот так вы говорите, что сайт создан для IE7:

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Видя такой код в начале html-документа, IE8 будет обрабатывать доку особым образом — в режиме работы IE7.

Это очень разумный ход, друзья. Молодцы все-таки эти парни из Майкрософт. Теперь веб-дизайнеры, вместо того, чтобы переделывать свои старые сайты из-за их несовместимости с новым браузером могут просто вставить одну строчку кода — и сайт будет работать, как ни в чем не бывало. Друзья! Это долгожданный свет в конце интернета, если у интернета есть конец. Я подготовил по этому поводу краткую утреннюю речь.

Обращение корпорации Microsoft к веб-дизайнерам

Дорогие наши веб-дизайнеры, AJAX-разработчики и все, кто работает с HTML! Наша компания, Microsoft совсем скоро выпускает браузер IE8, который таки умеет рендерить HTML. Есть лишь одна маленькая проблемка: мы не знаем, как будут отображаться в нем ваши сайты, сделанные под предыдущие версии IE. Точнее, мы знаем, но вам лучше этого не видеть, а чтобы вы этого и не видели, нужно как можно скорее вставить во все ваши сайты такой специальный мета-тег "X-UA-Compatible", который будет говорить: "страница создана для IE7". И наш славный IE8 сможет прочесть это мета-тэг, и сможет отрендерить страницу своим встроенным IE7 (да, в каждом блистательном IE8 есть частичка славного IE7).

В общем-то, это наша проблема здесь, в Microsoft. Мы что-то слышали об обратной совместимости ПО, но там было много букв. И мы решили, что вас больше, вы умнее, и можете лучше нас решать такие проблемы. Извините. Мы сдаемся. Все свободны.

А, не забудьте обновить код во всех своих сайтах. Да здравствуют веб-стандарты!

Попытка спокойно разобраться с X-UA-Compatible

Cмущает не столько само нововведение, сколько явный прогиб главного сайта по веб-стандартам в сторону IE. Об этом в тексте сказано много раз фразами типа "IE will support", "our group decided to recommend for IE8, and we hope to see it implemented in other browsers". Друзья, это попытка провалить веб-стандарты.

С другой стороны, это очень крутое нововведение: сейчас верстальщикам приходится не только применять html-хаки для преодоления несовместимости браузеров, но и обновлять хаки на старых страницах (я скажу еще раз, что именно поэтому ненавижу хаки во веки веков, это все продажа мозга в розницу). Сейчас же веб-дизайнерам предлагают "легкое" решение проблемы несовместимости разных версий IE: набор старых хаков, упакованных в одну строку кода. Только вот проблему эту создавали не веб-дизайнеры. И решать ее дожен не каждый дизайнер, а одна компания — производитель кривых браузеров.

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

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

Пока писал, слушал: 1. Net Pistols - God Save The Microsoft, 2. Net Pistols - Anarchy in The Web.

Update 1: W3C опубликовала черновик HTML 5.
Update 2: создал тему "Microsoft пытается подмять веб-стандарты под IE8" на Хабре.
Update 3: Джон 'jQuery' Резиг по поводу X-UA-Compatible.
Update 4: Константин Кичинский подсказывает, что по умолчанию может использоваться режим совместимости с IE7, т.е. режим IE8 нужно "включать" явно (подробности в его комментарии).


09:45:24, Flash-ripper.com
Сеятели воздуха выходят из закрытой беты

I'm on Pownce Совсем на днях публично открылся Pownce — сервис для друзей, жаждущих делиться файлами, сообщениями, ссылками и событиями (я немного писал о нем в прошлом квартале).

Сейчас на Pownce более 150 000 пользователей. Каждому из них в разделе Download предлагают скачать AIR-клиент для рабочего стола, чтобы обмениваться сообщениями без захода на сайт. Неплохой толчок к развитию воздушной технологии с учетом того, что этот сервис с большой скоростью набирает обороты после открытия.

Сервис основан тремя персонами — Кевином Роузом (Kevin Rose), Ли Калвер (Leah Culver) и Дэниэлем Бурка (Daniel Burka). Кевин и Дэниэль в свое время сделали сервис Digg.

Кстати, у Pownce есть API и вокруг него уже есть проекты.


2008-01-23

20:36:28, Flash-ripper.com
Adobe CoCoMo Private Beta — доступ желающим открыт

Я писал, что приглашаются желающие для участия в приватном тестировании Adobe CoCoMo. Там же объяснялось, что CoCoMo — это движок для онлайн-сотрудничества, реализованный в виде клиент-серверного Flex-фреймворка: набор flex-компонентов плюс веб-сервисы. Можно увидеть простую демонстрацию его работы в блоге создалетей CoCoMo.

Вчера мне пришло письмо из Адоби. В нем сообщалось, что я принят в эту программу. Для подтверждения моего участия предложили пройти на сайт Adobe Prerelease для регистрации. Сделано; ответили обещанием выслать ссылку для собственно доступа к программе. Сегодня увидел в почте эту ссылку, прошел по ней, получил доступ.

К чему пишу: если вам это интересно — поучаствуйте. Я же постараюсь написать о своих впечатлениях от этой штуки.


16:00:55, Flash-ripper.com
RAFPUG-2: Обмен стилями и потенциально совместимые команды

Стиль разработчика

Знакомства и встречи на RAFPUG-2 привели ко многим интересным беседам и нескольким потенциальным проектам. Но, что для меня даже более важно, я получил ощущение стиля некоторых братьев по технологии. Это расширяет как круг моих собственных возможностей, так взаимодействие с другими разработчиками. Да, я уже что-то знал о вас по сети, и, как оказалось, картина в целом были верная, но ничто не заменит живой беседы.

С опытным разработчиком casual-игр Ильей Курылёвым во время перерыва возникла идея небольшого совместного проекта (не игрового, но интересного мне и ему). После RAFPUG, уже в ресторане il Patio было обсуждение других конкретных задач, озвучивались идеи по поводу их решения. В частности, Таня '0xffffff' Белая подняла вопрос создания аватар-чата человеком, не знающим серверного программирования. В беседе Женей Потапенко было видвинуто предположение, что можно для этого попробовать недавно отданный в Open Source Adobe BlazeDS.  И похоже, теперь у меня на два проекта больше.

Вернусь к заголовку. Обмен идеями и новые проекты — это очень хорошо. Но формирующееся во время беседы ощущение стиля собеседников — это нечто большее. Именно здесь открываются новые перспективы взаимодействия людей. Становится яснее, к каким методам решения задач склоняется тот или иной человек. Расширяется собственное профессиональное видение, появляется возможность сравнить свои методы с методами других и обогатиться их опытом. Короче говоря, становится ясно, с кем бы ты захотел работать, а с кем — не очень, а с кем — ни в коем случае, а с кем — обязательно нужно замутить что-то вместе, больно человек правильный. Одно плохо — этого было мало. Нужно больше. Нужно ехать на RAFPUG с четкой целью людей посмотреть, себя показать и — не шифроваться, говорить о реальных проблемах.

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

Новые проектные команды

Когда собирается новая команда, очень важно, чтобы ее участники были максимально притерты друг к другу по рабочим показателям: от удобного каждому графика работы до способа расстановки фигурных скобок в коде. По этой причине люди предпочитают сотрудничать с уже знакомыми им коллегами. Но это сужает выбор при создании команд. Поэтому нужно знакомиться поближе (в том числе и с незнакомыми деятелями), чтобы иметь больший выбор для сотрудничества. Нужно знать как можно больше людей в своей отрасли: где они живут, во сколько просыпаются и умеют ли работать с SVN. Да, и как именно они раставляют фигурные скобки.

Резюмируя: чтобы создать сплоченную команду, люди должны как можно лучше знать друг друга, а отличный способ узнать своих поближе — это и есть встречи типа Russian Adobe Flash Platform User Group. Есть еще один вариант, скорее дополняющий данный, нежели конкурирующий с ним: речь идет об интерактивных профилях разработчиков, об этом в следующем посте данного цикла.


15:36:06, RIA crumbs
Inside RIA - сайт от O’Reilly

RIApedia.com сообщает о том, что O’Reilly запустил сайт посвященный RIA.

Что там сейчас есть? Сейчас там есть посты с блогов RIA разработчиков (на пример, Andre Charland, Andrew Trice, Rich Tretola). Пишут люди о дизайне и разработке RIA приложений, и о том какие есть “стандарты” для RIA. Выбор постов по интересующей тематике есть в хедере :)

Всем приятного использования и надеюсь пополнения “буржуйских” ресурсов умными статьями и постами от наших гуру-шамано-евангелистов :)


13:54:31, Constantiner's blog
Отлов событий из Item Renderer'ов

Многие знают, что ячейки таких компонент, как List и DataGrid могут быть представлены не только в стандартном виде, но и в произвольном, определённом пользователем. Достигается это с помощью item renderer’ов. Но не освещение темы item renderer’ов как таковых меня интересует сейчас, а некоторые конкретные случаи работы с ними. Те же, кто хочет узнать про рендереры, могут это сделать самостоятельно.

Основная задача item renderer’а - представить произвольный визуальный способ отображения и редактирования данных. То есть если речь идет об изменении данных, то renderer это делает самостоятельно. Замечу об отличии item renderer’а от item editor’а с точки зрения редактирования данных: item editor предоставляет механизм некой сессии редактирования данных, обладающей сложным устройством и возможностью отмены редактирования. Но это тоже отступление от нашей генеральной мысли об орехах.

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

Как перехватить это событие? Сложный вопрос. В общем, есть разные варианты. Например, используя ключевые слова parent или owner. Но реально это не очень спортивный способ. Ибо сильно завязан на структуру объектов.

Я предлагаю использовать способ, базирующийся на бабблинге событий в визуальных объектах, о котором я недавно писал.

Итак, будем основываться на примере с List’ом и item renderer’е с кнопкой. Будем использовать простейший XML в качестве data provider’а:

Code:

<mx:XMLList xmlns=""><testDataElement id="1" name="test 1" label="Delete" /> 
    <testDataElement id="2" name="test 2" label="Delete" /> 
    <testDataElement id="3" name="test 3" label="Delete" /> 
    <testDataElement id="4" name="test 4" label="Delete" /> 
    <testDataElement id="5" name="test 5" label="Delete" /> 
    <testDataElement id="6" name="test 6" label="Delete" /> 
</mx:XMLList> 

Тогда наш простой рендерер будет выглядеть так:

Code:

<?xml version="1.0" encoding="utf-8"?> 
<mx:HBox  
    xmlns:mx="http://www.adobe.com/2006/mxml"> 
    <mx:Label 
        width="100%" 
        text="{data.@name}" /> 
    <mx:Button 
        click="dispatchEvent(new Event ('insideRendererButtonClick', true))" 
        label="{data.@label}" /> 
</mx:HBox> 

При нажатии на кнопку мы генерим событие с бабблингом. Но как это использовать?

Есть два основных способа:

  • Простой способ, не требующий модификации List’а.
  • Более комфортный для использования, но требующий модификации List’а.

Первый способ прост. Мы ловим бабблинг снаружи обрабатываем его:

This text is replaced by the Flash movie.

Можно посмотреть в отдельном окне (исходники доступны по правой кнопке).

Пример прост: при нажатии на кнопку в первом List’е удаляется соответствующая строка. Во втором же List’е меняется метка на кнопке (и это, теоретически, вполне можно сделать изнутри рендерера).

Как мы видим, главный класс приложения прост. Но он требует от нас двух вещей: подписываться на события с помощью addEventListener (декларативный синтаксис не работает потому что мы не указали соответствующих метаданных события в List’е) и на всякий случай вызывать stopPropagation для нашего события (чтобы где-то наверху кто-то неожиданно его не поймал). Также мы не можем послать стандартный ListEvent так как заполнение его полей требует знания о List’е, что опять же требует owner’ов/parent’ов.

Кстати, способ с бабблингом требует одного условия: имя события (тип) не должно совпадать ни с одним из имен событий нашего List’а.

Приложение, реализующее второй способ, выглядит аналогично. Также по правой кнопке доступны исходники. Рендерер мы оставили без изменений. Мы лишь добавили простой кастомный класс события и соответствующую константу для нашего события в нем. Это событие отражено в метаданных нашего расширенного List’а. Оно не перекрывается с именем события, которое «пузырит» наш рендерер.

Также в нашем List’е мы видим отключение дальнейшего бабблинга события от рендерера (чтобы оно никому уже не помешало) с использованием stopImmediatePropagation.

Иллюстрация метода stopImmediatePropagation ()

А также можно увидеть формирование валидного события. Все просто. И, как следствие, упростился код главного класса приложения и стал много нагляднее.

Когда использовать эти способы? Первый способ хорошо подходит для прототипирования. Он быстрый и простой. Второй же способ лучше использовать при создании коммерческого приложения, особенно если речь идет о командной разработке.

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

Ну и напоследок предлагаю скачать готовый проект приведённого примера (Flex Builder 3 beta 3).

Ссылки по теме раз и два.

Now playing: Аквариум - Немое кино

12:47:15, 33 коровы
VIVA_INDIA, или будте внимательны когда описываете события

Есть класс который диспатчит событие и есть желание получить удобство написания кода когда подписываемся на события этого класса.

Для этого делаем так:

Класс события:

package com.the33cows.somepackage
{
import flash.events.Event;

public class SomeEvent extends Event
{
public static const VIVA_INDIA : String = “vivaIndia”;
…….

}

Класс:

package com.the33cows.somepackage
{
import flash.events.EventDispatcher;

[Event(name=“vivaIndia”, type=“com.the33cows.somepackage.SomeEvent”)]

public class SomeEventDispatcher extends EventDispatcher
{

}
}

теперь при наборе кода получаем такое:

что есть очень приятно).

Я всегда себе задавал вопрос почему, адоб использует именно такую конструкцию

[Event(name=”vivaIndia”, type=”com.the33cows.somepackage.SomeEvent”)]

по-моемому было бы логичнее использовать

[Event(name=”VIVA_INDIA”, type=”com.the33cows.somepackage.SomeEvent”)]

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

Оказалось парсер безумно туп!

У меня образовалось событие в названии которого были несколько прописных букв подряд

для наглядного примера:

public static const VIVA_INDIA : String = “VIVA_INDIA_OMG”;

для него метатег выглядел так

[Event(name=”VIVA_INDIA_OMG”, type=”com.the33cows.somepackage.SomeEvent”)]

на что я в ответ получил:


Правда не очень привлекательная картина? )

Справедливо как для 2.0.1 так и для 3 го билдера

Будьте счастливы и кодируйте с миром ).


12:22:29, Flash-ripper.com
Дотошный смотритель от StomperNet — или Adobe AIR в действии

"Гляделка" (или "Scrutinizer" в оригинале) — это AIR-приложение от самих StomperNet — "самих", потому как авторитет этих людей в среде интернет-маркетинга огромен. На них молятся манимейкеры всей планеты; а русский перевод и транскрипция их очередного популярного видео "Назад в будущее — Перспективы Web 2.0" вышел очень быстро.

Что же это за приложение такое, Scrutinizer? Это помощник тем, кто хочет вдумчиво сконструировать свой сайт, чтобы пользователям в удовольствие и авторам польза.

Гляделка работает так:


В основу работы Scrutinizer заложен один из принципов работы глаза — а именно разделение поля зрения на центральное и периферийное. Технически, это приложение имеет всего две ключевые функции:
1. Загружает в свой браузер указанную веб-страницу.
2. Визуализирует эту страницу в режиме симуляции глаза — применяя эффект Blur к некоей области вокруг курсора мыши (радиус настраивается вращением колеса).

Эти две базовые функции открывают широкий спектр применений Гляделки: от изучения поведения пользователя на сайте (для тестировщиков интерфейсов) до исследования контраста страниц (для веб-дизайнеров). Читайте "10 способов использования Гляделки". А установить это чудо мысли можно отсюда.

Что в этом важно для меня и для флэш-индустрии вообще? Scrutinizer иллюстрирует простую идею: новое и клевое быстро возникает там, где появилась возможность легко модифицировать старое. В данном случае старым был браузер без блюра.

Домашнее задание: найдите в браузере недостающую функцию, реализуйте ее в AIR-приложении с помощью его встроенного HTML-компонента, станьте мегапопулярными и заодно немного заработайте.

Update 1: Похоже, ребята стащили мышку Mus2 у студии Лебедева и вставили ее в картинку.
Update 2: Ссылку на Гляделку прислал мне judgefrog.


10:03:43, LIFE.Flash
Какая CMS у сайта THE FWA?

Все таки я думаю, что идельной CMS для Flash сайта, сделать невозможно, так как любой flash-сайт всегда со своей особенной архитектурой. Под одну гребенку flash-сайт мерить нельзя. Конечно это спорный вопрос :)

На эти мысли на меня навела CMS для сайта TheFWA

fws_cms.jpg

Или вот… У group94 тоже есть своя CMS, грубо заточенная под свои проекты, такие как фотогалерии, портфолио…

group94cms.jpg

Я думаю, идельным вариантом для Flash-студии, будет создание своей Flash CMS, ориентированная на те проекты, которыми она занимается…

P.S. Забаваня CMS у TheFWA :)

,

09:28:27, Garbage Collector
Условная компиляция с mxmlc версии 3.0

Будущий релиз Flex 3 породил массу статей, посвященных новшествам и изменениям как в самом фреймворке, так и в новой версии Flex Builder. На этом фоне без внимания остались изменения, произошедшие в компиляторах, поставляемых в комплекте с Flex 3 SDK. Сегодня я предлагаю исправить эту несправедливость. :-)
(more…)


07:13:15, 33 коровы
Юбилей one-face.ru!

У проекта one-face.ru юбилей — к ним присоединился 100 участник с чем их и поздравляем!
Тадам!


07:13:15, 33 коровы
Protected: Юбилей one-face.ru!

This post is password protected. To view it please enter your password below:



2008-01-22

21:41:03, Flash-ripper.com
Русской Альтернативой заинтересовались большие люди из NY

В Америке уже прознали, что российские парни затеяли крутой флэш-проект и поспешили познакомиться: люди из OddCast, Нью-Йорк в гостях у команды Alternativa Game, Пермь.

"Оддкастеры" занимаются многим, в том числе и онлайн-аватарами — делают это хорошо. Я так понимаю, увидев волковский параллакс-беспредел с трехмерной девушкой они просто не имели шанса усидеть на месте. Хехе, а я ведь тоже втихаря еще с прошлого года изготавливаю генератор персонажей, хоть и не столь шикарный, как у Оддкаста ;-)

Чую: скоро об Альтернативе напишет Райан Стюарт!


14:57:44, Flash-ripper.com
RAFPUG-2: виртуалов не существует

Друзья, это первая часть моего отчета о "RAFPUG-2". Теперь никаких лоликов. Пишу о собственнных впечатлениях, благо есть уже несколько хороших отчетов.

Вторая встреча Российской Группы Пользователей Платформы Адоби Флэш утвердила меня в мысли, что флэшем занимаются особенные люди, и моя любовь к этой технологии черпает в сообществе львиную долю энергии. В Москве это стало настолько очевидным! Я был на грани превращения в чеширского кота, с последующим вырождением в блуждающую чеширскую улыбку. Но есть над чем работать.

Связанность флэш-сообщества

На встрече RAFPUG-2 присутствовало 87 человек. Я задаюсь вопросом: скольких из них я знаю и со сколькими я успел пообщаться? Racer, Junik, Таня Белая, Pirrest (мы вместе ехали из Харькова), Костя Ковалев, Саша Гахов, SlonVsapogah, Maar, Артемий Малков, Юра Яровой, Денис Коляко, Leo, BlooDHounD, IV, Нокс, Дифлюкс, Женя Потапенко, Александр Козловский, Влад Январев, prof, Илья Курылёв — всего немногим более 20 человек. Формально, я пообщался с четвертью присутствующих. И руки тянутся написать о каждом отдельный пост: замечательно то, что каждый из вас оказался таким, каким он выглядит в сети, с подавляюще частым отклонением в лучшую сторону. Друзья, давайте выглядеть чаще и больше! А вот с некоторыми я не успел даже раззнакомиться — очень жалею.

Но у меня возникают новые вопросы: сколько флэш-разработчиков вообще в рунете? А скольких флэшеров знает каждый из этих флэшеров? Иными словами, каковы внутренние связи флэш-сообщества, и насколько оно связно вообще. Как хорошо флэш-сообщество знает само себя и насколько осознает себя как сообщество?

Часто  флэшеры уникальны по складу ума. Флэшеры — это группа, цельность которой оказывает на нее саму большее влияние, чем в случае с другим группами. Более того, флэшеры — это весьма маргинальное образование, что заметно по отношению адептов других технологий к технологии Flash. Связность флэш-сообщества — это продуктивная, объединяющая сила (в том числе и как вакцина от сильверлайтов), в переспективе приводящая к образованию новых команд разработчиков. Вывод такой — нужно больше знакомиться и взаимодействовать. Да, еще больше. Дружить блогами и не только.

Итак, первый эффект от RAFPUG-2 — это встреча с теми, кого знал уже давно. Второй эффект — это знакомство с новыми людьми, в том числе с несколькими людьми из Флексиса — компании, благодаря которой состоялось это событие, как и образование данной официальной группы вообще. Без сомнения отмечаю высокую степень организованности этого коллектива, мероприятие было проведено четко: чего стоят хотя бы фото, подробно иллюстрирующие маршрут к месту встречи! Еще факт: даже я, заявивший о своем приезде практически в последний момент, получил свой бейджик с именем, ником и названием своей компании. Так держать, Flexis!

Тема следующей записи — стили работы и образование новых команд.

Кстати, как будет лучше для вас — мой отчет небольшими порциями (размером с данную, около семи штук) или отчет в виде одного длинного текста?


13:28:15, Constantiner's blog
Еще о событиях в ActionScript
Поток событий для визуальных объектов в ActionScript 3

Если кто-то помнит, на первой встрече Русскоязычной Группы Пользователей Flash-платформы (RAFPUG) я рассказывал о событиях в ActionScript 3. Как краевед могу сказать, что тема событий в ActionScript далеко не так тривиальна, как это может показаться на первый, второй и третий взгляд. Работая с ними довольно долго, можно тем не менее иногда обнаружить что-то новое, сделать новые выводы и найти применения старым вещам. В частности, в том докладе я сказал некоторую лажу и во всем зале меня никто не поправил :( Поправлю себя сам.

Там я сказал, что event flow (поток событий) работает только для визуальных объектов и только для интерактивных событий мыши и клавиатуры, генерируемых Flash-плеером. На основании этого я продемонстрировал пример с искусственным бабблингом (фазой пузырька). И сделал слегка неверные выводы.

На самом деле, на практике все гораздо проще. И мой тот пример вполне работоспособный, но более актуальный для невизуальных объектов, либо для того, чтобы объекты генерировали целевую фазу (target phase) и фазу пузырька (bubbling phase) одновременно. Речь идет о делегировании события.

Для простой же фазы пузырька в визуальных объектах практически ничего не надо, и сейчас я это проиллюстрирую.

В изначальном утверждении про визуальные объекты и поток событий все правильно если рассматривать под потоком событий все три фазы (capture, target и bubbling). Но фаза пузырька (bubbling) работает и так, сама по себе.

Рассмотрим пример:

This text is replaced by the Flash movie.

Пример сделан в виде просто AS-проекта для наглядности. Исходники можно посмотреть тут. Скачать проект можно тут.

Что мы видим на данном примере. Есть корневой Sprite, в котором лежит простой компонент ParentSprite (внешний серый квадрат), в нем лежит компонент ChildSprite, при клике на внутренний квадрат которого наш компонент генерит событие, которое ловится внешним Sprite‘ом безо всякого участия ParentSprite:

  1. private function onInsideChildClick (event:MouseEvent):void
  2. {
  3.     dispatchEvent(new Event ("ourTargetEvent", true));
  4. }

Обработка события видна в текстовом поле. Весь секрет в волшебных пузырьках во втором параметре конструктора класса Event (он установлен в true). Это и есть бабблинг. И ParentSprite автоматом бабблит его. Безо всякого кода.

Естественно, это просто иллюстрация. В реальности неплохо бы сделать кастомный класс события, соответствующие константы итд.

Гарантирую, что это может сильно облегчить вам жизнь.

Now playing: Аквариум - Пустые места

10:50:00, Flash-разработка
О том, как Flash Player воспроизводит видео MP4, Quicktime, и даже музыку из вашего iPod.
Все говорят, "Вот, Flash Player воспроизводит кучу видео-кодеков". А давайте проверим?
Первым делом лезем в Гугл и по первой же ссылке попадаем на Flash-Ripper.
Прочитав, первое желание пойти и посмотреть этот "Арал Балкан: FAQ по Adobe Flash Player H.264 support". Вопросы нас интересующие:

  • Будет ли воспроизводить FP9 не-FLV файлы или расширения?
    Да. Стандартные контейнеры MPEG-4, содержащие видео и аудио данные закодированные H.264/AAC, MP4, M4V, M4A, MOV, Mp4v, 3gp, 3g2.

В ответах находим интересную ссылку: http://www.debit.nl/video/. Здесь на странице, SWF воспроизводит видео MOV. Ага, раз у нас играется, значит с плеером всё в порядке. К слову, это видео H.264.

Попробуем воспроизвести этот файл своими средствами. Создаем в Flash CS проект AS3 с FLVplayback. Вызываем:


Локальная политика безопасности - только интернет, запускаем опубликованый HTML, смотрим. Пошла загрузка. Молчание.
Скачиваем MOV, пытаемся воспроизвести локально. Компилируем, запускаем.
Выкидывает исключение:
VideoError: 1005: Invalid xml: URL: "Video/BookofSecrets.mov" No root node found; if url is for an flv it must have .flv extension and take no parameters
Аналогичные действия с AS2 - проектом вообще вызывали ошибки и зависания.
Значит FLVPlayback не может воспроизводить другие видео-файлы.

По совету коллеги, создаю Flex-проект и перетаскиваю компонент VideoDisplay. В свойствах source указываем URL и - вуаля, всё играется. Локальный файл не позволяет воспроизвести политика безопасности. Но с этим мы боремся легко (гугл рулит) - добавляем параметр -use-network=false в Project -> Properties -> Flex Compiler -> Additional compiler arguments.

Возникает вопрос - были утверждения: что Flash Player 9 MovieStar может легко воспроизвести видео любым способом, даже непосредственно самим проигрывателем, и старые проекты откомпилированные еще под 7-ю версию не будут иметь проблем. А почему же не получается? Почему только флекс-компонент VideoDisplay способен воспроизвести такое видео? Что же не так?

* * *

Попробовал пример из Flash CS3 Help Actionscript 3.0 Components для класса Video. Воспроизводит! Для него вопрос снимается.

* * *

А вот компонент Media Display Actionscript 2.0 наш MOV не воспроизводит.

2008-01-21

23:09:00, Flex 2 & Co
Новый проект As3Eval
As3Eval - это библиотека, позволяющая динамически компилировать некоторый ecmascript внутри плеера. Она находится сейчас в стадии разработки, поэтому применять ее в реальных проектах врядли получится. Библиотека состоит из портированного es4 "esc" компилятора, доступного из проекта Tamarin.

Демо
В закладке Eval UI можно увидеть сгенерированный байткод. Также можно вставить дамп (hexdump -C) свфки и дизассемблировать его.
Исходный код
SWC

16:56:00, Flash-разработка
Не работает скрипт в TimeLine. Нашлось объяснение. AS3
Наткнулся на решение проблемы описаной мной здесь.

На Labs.Adobe.com смотреть обсуждение "stop() not being called within movieclip".

Ответ на вопрос звучит так: Did you apply the Flex 2.0.1 patch for Flash CS3? The problem you are describing is fixed in that patch.

13:51:52, Flash-ripper.com
Флексипедия восстановлена. Фуххх!

FlexiPediaФлекс-вики снова работает. Неоценимую помощь в починке вики оказал один из лучших PHP-программистов Денис 'Q-Zma' Кузнецов. Да что там помощь — он просто все сделал там, где я стратил, и он сделал это за полчаса.

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


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