Flex и RIA блоги
2008-01-21 |
Как лучше постить код в Bloggere Итак, выдрав код замены DIV на TEXTAREA отсюда, выявил несколько неудобств (копируемый в клипбоард код теряет переносы, необходимо заключать в дополнительный контейнер содержимое) и внес коррекции. Однако, остался один недостаток - теряются пробельные символы в начале строк. Кроме того, теряется форматирование, но, на мой взгляд, это не является большим минусом при выкладывании кода. Итак, решение позволяет сделать так, чтобы код помещался в контейнере TextArea. Не более того. Вот код преобразовывающего скрипта: <script type="text/javascript"> // CodeBlocksSubstitutor var i=0; var j=0; while(_DIV = document.getElementById("code")) { _DIV.id="processed"; AREA = document.createElement("TEXTAREA"); AREA.id = "codeArea"+i; if (_DIV.rows==null) AREA.rows = 10; else AREA.rows = _DIV.rows; AREA.cols = 53; AREA.readOnly = true; AREA.wrap = "off"; i++; AREA.innerText=_DIV.innerText; newdiv=document.createElement("DIV"); newdiv.appendChild(AREA); div_parent=_DIV.parentNode; div_parent.replaceChild(newdiv,_DIV); } </script> В тексте, код необходимо поместить в контейнер: <div id="code" rows="20"> </div> Параметр id="code" указывает на то, что текст необходимо обработать. Параметр rows задает количество строк поля TextArea. Тег div можно заменить на любой другой, например, code. Это повлияет на внешний вид контейнера. Код я вставил в виде модуля HTML/JavaScript в нижний блок шаблона моего блога. Пример: package {
import flash.display.Sprite; import flash.display.Bitmap; [Frame(factoryClass="MyFactory")] public class FrameTest extends Sprite { [Embed(source="big_asset.jpg")] private var Asset:Class; public function FrameTest() { init(); } public function init():void { var asset:Bitmap = new Asset(); addChild(asset); } } } |
2008-01-19 |
Блог одиноко стоящего игрока вспышки переехал Было: http://murejib.blogspot.com/. Стало: http://murejib.com/. Еще один флэш-блог переехал на свой хостинг. Поздравляем! Но напомню еще раз, я говорил: не заводите блоги на чужих "бесплатных" хостингах типа wordpress и blogspot. Если ваш блог чего-то стоит, вы рано или поздно переедете на свой домен и хостинг. И это ужасно. Не все смогут сменить ссылки на ваш сайт. Какая-то часть людей будет ходить по старому адресу. Гугл будет сбит с толку. Короче. Никаких Блогспотов, я прошу вас. Racer, Shagrat и еще несколько ребят — это я к вам. Негоже правильные сайты по чужим доменам ютить. Исключение составляет Livejournal, там есть свои фичи типа френдования. Кстати, один паренек из Питера написал статью "Советы стандалонным блоговодам" для тех, кто решил открыть свой блог не на бесплатном хостинге. |
2008-01-18 |
Отчет о RAFPUG-2 в новом формате Фух, наконец дописал отчет о RAFPUG-2. Те, кто уже прочел предыдущие отчеты, очень легко осилят и этот, ведь он их только дополняет. Я писал целый день, и получилось семь частей! Выкладываю все сразу: первая часть отчета о встрече RAFPUG-2, плюс части 2, 3, 4, 5, 6 и 7. Приятного чтения :) |
Что такое Flex? Этот вопрос задают многим из разработчиков, когда те предлагают Flex в качестве технологии для решения поставленных задач. И не всякий сможет вот так вот, с ходу, объяснить. В качестве примера хочу привести публикацию Теда Патрика "What is Flex?". Ну, или можно прочитать мой перевод. |
Что такое Flex? Этот вопрос задают многим из разработчиков, когда те предлагают Flex в качестве технологии для решения поставленных задач. И не всякий сможет вот так вот, с ходу, объяснить. В качестве примера хочу привести публикацию Теда Патрика "What is Flex?". Ну, или можно прочитать мой перевод. |
Делаем прелоадер для Flex-приложения. AS3. Если при разработке проекта нам доступен для редактирования таймлайн основного SWF, например, мы делаем проект во Flash IDE, всё просто - всё делаем как и раньше - а точнее - как нам советует в своей статье "Экспорт классов во второй кадр и создание прелоадера во Flash CS3" __etc. А что делать, если наш проект компилируется Flex SDK? Можно сделать маленький модулек, который будет загружать и мониторить загрузку основного SWF. Ну а если требуется наличие только одного SWF? Люди советуют почитать статью Preloaders in AS3. Читаем. Основную мысль автору статьи, подсказал Ted Patrick, намекнув на мета-тег [Frame] и поглядеть исходник mx.core.Application. Поглядим-ка "...\Flex2SDK\frameworks\source\mx\core\Application.as ". Как отметил 101 (тот что автор статьи) там и правда есть тег [Frame(factoryClass="mx.managers.SystemManager")] . А в комментарии, по-моему, ключевой является фраза "Все фреймворки инициализируются SystemManager-ом".Идем смотреть "...\Flex2SDK\frameworks\source\mx\managers\SystemManager.as". И правда - видим интересные фразы типа "ВНИМАНИЕ: Минимизируйте не флэшовые классы, которые импортируете здесь, всё что связано с SystemManager будет загружено в 1й фрейм до того, как загрузится прелоадер, и вообще, что-либо отображающееся." Кроме того, несколько ниже, говорится, что "SystemManager - первый визуальный класс, который создается в приложении. Он так же отвечает за создание mx.preloaders.Preloader, который отображает mx.preloaders.DownloadProgressBar до конца загрузки приложения, после чего SystemManager создает mx.core.Application instance". Собственно, вызывается метод SystemManager.create, код которого приводит 101 (автор). Он пришел к следующим мыслям:
Итак, нам остается всего-навсего создать класс обычного прелоадера, который:
Еще одна любопытная особенность этого решения - основной таймлайн представляет MainClass, но в качестве "Document Class" теперь выступает не MainClass, а MyFactoryClass. Из этого следует:
В основном классе FrameTest - это то что выше называлось MainClass - всё просто. Имбедится и выводится картинка "big_asset.jpg", желательно очень большого размера. Единственное необычное - это фраза [Frame(factoryClass="MyFactory")] .Класс MyFactory - это наш вышеописываемый MyFactoryClass.
Всё. Переходим к практике. * * * Не забудем положить картинку "big_asset.jpg" в папку с классами. Первая коррекция - getDefinitionByName вызывает исключение, в случае если класс не найден. Поэтому проверки * * * Пробуем Попробуем, как это будет работать в интернете. Хм. Прелоадер отрабатывает, но как-то поздно. Мой Naviscope показывает, что SWF загружается больше чем на половину, когда только начинает происходить отрисовка полосы загрузки. Попробую еще утяжелить SWF-ку. Для этого добавляю картинок. Интересное наблюдение - если накопировать одну и ту же картинку и имбедить копии, размер SWF не изменится - как будто внедрена одна картинка! Вот это сжатие! Итак, утяжелил до 20 мБ. Теперь всё встало на свои места. Прелоадер аккуратно отрабатывает объем и затем отображается картинка! Всё дело было в слишком быстром интернете. Итак, подход прост и практичен. Спокойно делаем правильные и эффектные флэшки любого размера! |
Расширяя возможности AIR… Одной из ключевых проблем AIR-приложений является то, что они не могут запускать другие приложения. Adobe объясняет это проблемами с безопасностью, которые вызывает данная функциональность. Mike Chambers предложил решение этой проблемы в виде CommandProxy - .NET-приложения, которое запускается перед запуском AIR-приложения, и получает от него команды/возвращает резльтаты. Сейчас приложение способно к |
Роботы-убийцы
Замочи их всехВот наткнулся на одну забавную Flash игру. Мне понравилась идея. |
2008-01-17 |
Flex фреймворки В посте Open Source Flex Development Frameworks Show that Platform is Gaining Momentum приводится обзор open source flex фреймворков. Лично я люблю странной любовью FlexUnit. А вы? |
Синдром отмены RAFPUG-2 Мои впечатления от второй встречи Russian Adobe Flash Platform User Group все еще формируются. Состояние сейчас сродни похмельному, только алкоголь здесь ни при чем: виноват сильнодействующий препарат RAFPUG-2, синдром отмены которого имеет место. При этом в сознании продолжается вызванный встречей спонтанный мозговой штурм. И пока я собираюсь с мыслями по поводу, пока продолжают возникать идеи-последствия, позвольте мне побыть вашим RSS-ридером. Пожалуйста, прочтите уже опубликованные отчеты о RAFPUG: я еще напишу свой, но в нем я буду упоминать только о том, что не было упомянуто в нижеследующих текстах, исходя из того, что вы их уже прочли, плюс — попытаюсь изложить некоторые возникшие идеи. Отчеты о второй встрече Russian Adobe Flash Platform User GroupПервыми отписались Racer и Junik. Юля в своих горячих следах от второй встречи RAFPUG лаконично, точно и позитивно поведала о всех ключевых моментах. А высокий коэффициент полезного действия Constantiner'а можно утверждать по одному его доку "Вторая встреча RAFPUG в рамках Adobe Flex and AIR Pre-Release Tour" — это самый полный отчет, плюс фото. Неутомимо. И тоже позитивно! В особенном отчете Racer'а умело зарифмована идея "дети — наше будущее". Это была важная часть второй встречи RAFPUG, флэш-обучению школьников был посвящен доклад Артемия Малкова. Мне кажется, что Racer — поэт, и мне нравится его открытый стиль; если ему что-то не про душе, он пишет и об этом. Есть также пара совсем официальных отчетов и мега-краткий отчет от __etc. Спасибо вам за эти тексты! Они очень облегчают мою работу, так как описывать все происходившее в моем настоящем состоянии RAFPUG-абстиненции было бы трудно. В следующей записи я постараюсь только дополнить уже сказанное о встрече. |
Теги ASDoc. AS3 Теги ASDoc @copy reference - копирует ASDoc комментарий из reference. Копируется основное описание и теги @param и @return. Остальные теги не копируются. Пример: @copy #stop, @copy MovieClip#stop @default value - указывает значение по умолчанию value для свойства, стиля или эффекта. Пример: @default 0xCCCCCC @eventType package.class.CONSTANT - комментарий для тега метаданных [Event]. Описывает константу, которая определяет значение свойства Event.type объекта event, ассоциированного с событием. @eventType String - комментарий для констатны события. Указывается перед определением константы события и определяет название события. Если тег не указывается, комментарий констатны не заносится в описываемый класс. @example exampleText - вставляет пример в текущее описание, при этом применяет к тексту кода особый стиль и генерирует заголовок. Сам код заключается в теги <listing version="3.0"></listing>. Код будет расположен в серой прямоугольной прокручиваемой области с сохранением пробельных символов. Пример: @example The following code sets the volume level for your sound: <listing version="3.0"> var mySound:Sound = new Sound(); mySound.setVolume(VOL_HIGH); </listing> @exampleText string - используется во внешних файлах с примерами, на которые осуществляется ссылка из тега @example. Этот комментарий должен располагаться в начале, перед первой строкой или в конце - ниже последней строки примера. Во внешних файлах примеров допустимо указывать только один комментарий в начале и один в конце. Пример: /** * This text does not appear * in the output. * @exampleText But this does. */ @inheritDoc - используется для комментирования перекрываемых свойств и методов класса-потомка. При этом, в описание класса-потомока копируется комментарий из класса-предка, или из интерфейса, который реализуется этим классом-потомком. Копируется только содержимое тегов @param и @return. Остальные теги игнорируются. При формировании комментария для этого тега, соблюдается следующий порядок: 1. Интерфейсы, используемые описываемым классом (в свободном порядке) и все их базовые интерфейсы. 2. Прямой предок класса. 3. Интерфейсы, используемые классом прямого предка и все их базовые интерфейсы. 4. Повторяются п. 2 и 3 до тех пор, пока не будет достигнут класс Object. Пример: @inheritDoc @internal text - внутренний комментарий, который не будет включен в документацию. Пример: @internal Please do not publicize the undocumented use of the third parameter in this method. @param paramName description - добавляет комментарий, описывающий метод с именем paramName. Пример: @param fileName The name of the file to load. @private - исключает внесение комментируемого элемента в документацию. Пример: @private @return description - добавляет в описание метода раздел Return - комментарий касательно возвращаемого значения. Возвращаемый тип определяется ASDoc автоматически. Пример: @return The translated message. @see reference [displayText] - добавляет в описание метода раздел See Also - ссылка на описание элемента класса. Пимер: @see flash.display.MovieClip @throws package.class.className description - документирует ошибку (исключение), которую может генерировать метод. Пример: @throws SecurityError Local untrusted SWFs may not communicate with the Internet. Не ASDoc теги Я не нашел эти теги в Adobe LiveDocs, но люди их пользуют. @author - автор кода. Пример @author Name @version - версия кода. Пример @version 3.15 @langversion - языковая версия. Пример @langversion ActionScript 3.0 @playerversion - версия Flash Player. Пример @playerversion Flash 8 Примеры использования тега @see: @see "Just a label" - текстовая строка @see http://www.cnn.com - ссылка на внешний веб-сайт @see package-detail.html - ссылка на локальный HTML-документ @see Array - класс верхнего уровня @see AccessibilityProperties - пакет @see flash.display.TextField - класс TextField в пакете flash.display @see Array#length - свойство класса верхнего уровня Array @see flash.ui.ContextMenu#customItems - свойство класса ContextMenu из пакета flash.ui @see #updateProperties() - метод в описываемом классе @see Array#pop() - метод класса верхнего уровня Array @see flash.ui.ContextMenu#clone() - метод класса ContextMenu из пакета flash.ui @see global#Boolean() - метод пакета верхнего уровня global @see flash.util.#clearInterval() - метод из пакета flash.util Относительно правил ASDoc-комментирования смотреть списанное из чужой тетради. PS: Наконец решил расставить все точки над Ы и правильно комментировать свой код. |
2008-01-16 |
FlashPhone.ru подвергся атаке довольных пользователей
Преимущества flashphone.ru:Не нужно устанавливать ПО, для звонка достаточно открыть страницу в браузере. Сервис умеет использовать HTTP-туннелирование, так что у пользователей никогда не возникнет проблем с NAT и firewall — все работает через 80 порт.В настоящее время идет активная разработка новых функций: книга контактов, работа с аккаунтами прямо из приложения, история звонков и т. п. Виджет CallMeОдним из интересных нововведений сервиса является виджет CallMe: любой пользователь flashphone может заказать такой себе, отправив заявку на info@flashphone.ru (в письме нужно указать свой логин и куда будет звонить виджет — на flashphone, на SIP URI или на обычный телефонный номер, в последнем случае будет использоваться добавленный аккаунт оператора VoIP). HTML-код виджета встраивается в html-код страницы (как ролики youtube), его можно добавить хоть на страницу livejournal хоть на сайт/блог, чтобы посетители могли прямо с сайта позвонить автору (хозяину виджета). В ближайшее время виджет станет доступен всем пользователям сервиса.Проект еще на ранней стадии развития, но оно идет быстро. Обсудить FlashPhone можно на его форумах. |
Внешние ресурсы во Flex 3 приложениях или напильник при компиляции :) Давно хотел написать об этой “фишке” во Flex 3, но руки не доходили. Как известно при создании нового проекта добрый Flex 3 создает папочку src в какую складывает AS и MXML. В процессе разработки, если мы используем внешние ресурсы, нам приходится указывать пути к ним с учетом уже того, что наши исходники лежат в папке, то есть к примеру - “../assets/icons/somesuperiormegaicon.png”. И на выходе мы имеем в папке bin наш swf и папки, но пути остались с “лишним ../”, из-за чего ресурсы не загружаются в приложение.. и приходится создавать папку в которую складываешь сам swf дабы сохранить пути рабочими… |
Вернулся из Москвы. Общее впечатление одним словом Охуенно. Подробности - следующих постах, тока в офис зашел. |
Головная боль при скиновании во Flex 3 от Adobe В процессе глубокого дебага скинов на проекте с использованием Flex 3 поймал грабли на том, что к примеру границы у PanelTitle не хотел быть как и прежде и Accordion не “поднимает” значения атрибута selectedFillColors. Если честно была озадаченность в мозгах и поиски каких-то косяков с нашей стороны, но все оказалось намного проще, на первый взгляд Оказывается что Adobе, в процессе изменения SDK для Flex 3, решили добавить флаг для компилятора -compatibility-version, указав который мы насильно заставляем наше Flex приложение, разработанное с использованем SKD для Flex 3, использовать поведение некоторых UI компонент из старого доброго SDK 2.0.1 Вот такие пироги… |
2008-01-15 |
Вторая встреча RAFPUG в рамках Adobe Flex and AIR Pre-Release Tour Вчера в Москве состоялась вторая встреча Russian Adobe Flash Platform User Group. Это событие проходило в рамках Adobe Flex and AIR Pre-Release Tour, что само по себе придало мероприятию высокий статус. Также мероприятие было интересно тем, что в нем приняло участие беспрецедентное количество русскоязычных авторитетов Flash-платформы. Опишу хронологически так, как видел это я. Сразу скажу, что я не буду пересказывать технические подробности содержания докладов. Ибо доклады были большими, концентрированными, и мероприятие для того и проводилось, чтобы они были выслушаны. Вдобавок, снималось много видео, которое, надеюсь, будет выложено. Также обещали выложить все презентации. Ну, поехали. В общем, все началось задолго до самого официального мероприятия. Пока все работали на своих работах, приезжие были предоставлены общению и питью кофе/пива. И происходило все это на Старом Арбате в Старбаксе и Кружке. Среди приехавших из Питера были замечены Юля “Junique” Николаева, Павел “Vertex” Кожин, Дима “Maar” Арышев (у которого, кстати, в тот день был юбилей - ему исполнилось 27 лет: поздравляем!) и ваш покорный слуга. Были также важные персоны из Харькова: Ростислав “Рост” Сирык и Эльдар “Pirrest” Прилуцкий. А также сочувствующие москвичи Саша “Agahov” Гахов и Таня Белая. ![]() Павел “Vertex” Кожин, Юля “Junique” Николаева, Дима “Maar” Арышев, Саша “Agahov” Гахов, Ростислав “Рост” Сирык и Эльдар “Pirrest” Прилуцкий в кабацкой обстановке перед второй встречей RAFPUG Давно ожидаемое присутствие Роста было как бальзам на душу. Общение лилось рекой и запивалось пивом. Ну что тут рассказывать? Там надо было быть. ![]() Рост и Таня Белая в неформальной обстановке pre-party ![]() В итоге качество переросло в новое качество, и мы двинулись по направлению к ФМШ-2, где проходило мероприятие, вызванивая попутно тех, кто почему-то оказался неоповещен (типа Миши “Nox Noctis” Антипина, которого в итоге удалось подвигнуть). А там уже собралась огромная куча народа! Кворум явно был. Как всегда основную роль в организации события взяли на себя ребята из Flexis - партнеров Adobe, за что им отдельное спасибо. ![]() Зал скорее полон, чем пуст ![]() Представителей русскоязычного Flex-сообщества (как гуру, так и нет), представленных в сети, было хоть отбавляй. В общем, были все. Были также и гости-евангелисты из Adobe Andrew Shorten и Enrique Duvos, подготавливающиеся к презентации. После того, как все перездоровались-перезнакомились, пообщались и потусили, решено было потихоньку начинать. Но начало задержалось. Во время одного из подключений проводов к ноутбукам, Макбук Andrew немного сгорел. Вроде, проблема коснулась лишь аккумулятора, но для этой презентации ноутбук стал негоден Enrique пришлось уступить свой ноутбук с декламированием английской пословицы: трубку, ноут и жену не отдам никому. Пока подготавливались материалы, слово взял Павел Черкашин, глава представительства Adobe в России. ![]() Вступительное слово главы представительства Adobe в России Павла Черкашина Он сказал много теплых слов об образовавшемся сообществе пользователей Flash-платформы, поблагодарил школу, которая предоставила зал для встречи, рассматривая это как намечающееся тесное сотрудничество в образовательной сфере. Также короткое ответное слово взял директор ФМШ-2. Ему были вручены официальные благодарственные письма от Adobe. Между прочим, в зале сидело достаточно много учеников этой школы. Дальше начался доклад Andrew Shorten. В вводном слове он рассказал о программе презентации и прочитал доклад о Flex и Flex Builder’е. Несмотря на чужой компьютер, на котором он просто не смог сходу запустить некоторые из подготовленных демо, все было на высоте. Отличная презентация, отличное чтение доклада, отличная работа с демонстрациями. Сам доклад шел на английском, но он переводился Александром Цыплихиным из Flexis, которому иногда помогал зал. Когда Andrew стал демонстрировать технические детали работы с новыми технологиями, перевод решили отменить: на него уходило слишком много времени и встреча могла затянуться. Лично мне были интересны демонстрации приложений (Flex и AIR) и демонстрация возможностей Flex Builder’а 3 для дизайнеров. Также я подчерпнул некоторые фишки-нововведения нового билдера. Опять же, повторюсь, пересказывать доклад, да еще без презентации, да еще с моей памятью - задача глупая и неблагодарная. Будем ждать появления презентаций и видео. После доклада Andrew ответил на ряд вопросов. Перерыв. После перерыва (общение, кофе, булочки, общение) начал свои доклады (Open source и Data services) Enrique Duvos. Он говорил очень быстро с хорошо чувстсвующимся испанским акцентом. Иногда казалось, что он даже переходил на испанский, но все же прислушавшись можно было распознать родную английскую речь. В остальном его доклад был на высшем уровне. Enrique поведал про весь спектр опенсорсных инициатив от Adobe, про то, как могут в них участвовать рядовые разработчики и что это им дает. Во втором докладе Enrique рассказал про LiveCycle Data Services ES и опенсорсный BlazeDS, о тех преимуществах, что дает AMF перед другими протоколами и о том, чем отличаются представленные два сервера и что они дают разработчикам и пользователям. Enrique и Andrew ответили на возникшие вопросы из зала и был провозглашен очередной перерыв. ![]() Andrew Shorten и Enrique Duvos после выступления Дальше пошли короткие доклады от представителей русскоязычного Flash-сообщества. Короткие потому, что времени было уже за девять вечера. Я оттараторил свой обзорный доклад по концепции насыщенных интернет-приложений (RIA) в том виде, в котором эта концепция была представлена Macromedia в 2002-м году, соотнеся это с современными реалиями. Во временной регламент я уложился, но не вполне уверен, что такое конспективное изложение сильно порадовало публику. Саму презентацию можно скачать тут (1.5 M). Дальше Иван Дембицкий растекся мыслию по древу насчет судеб Flash в России. Пересказывать не буду. Пусть Иван сам расскажет ![]() Иван “iv” Дембицкий рассказывает об истории Flash в России Завершил программу докладов Артемий Малков из Flexis с докладом об использовании Flash-платформы в образовании. Он глубоко уверен о том, что это наиболее перспективная технология во всех ее аспектах. Также он поведал два факта: о том, что они пишут школьный учебник по Flex и о том, что теперь для школьников и студентов Flash CS3 можно купить с 90% скидкой, а Flex Builder - бесплатно. Эту информацию официально подтвердила заместитель главы представительства Adobe в России Ольга Мананникова. ![]() Артемий Малков читает доклад об использовании Flash в образовании В завершение мероприятия началась веселуха в виде розыгрыша призов по заполненным анкетам. Разыгрывалась лицензия Flex Builder 3 Professional, Creative Suite 3 Web Premium, iPod Nano и пять фирменных рюкзаков Adobe со всякой ботвой в них. Интрига была в том, что те, кто сдал анкету, выиграл, но не присутствовал в зале, из процесса исключались. ![]() Ольга Мананникова, Andrew Shorten и Enrique Duvos разыгрывают очень ценные призы по анкетам участников В завершение Ольга Мананникова объявила о том, что в скором времени нас ждут конкурсы на лучшее приложение (очевидно Flex и/или AIR). Причем россиянам будут доступны два конкурса: европейский, где российский Adobe будут содействовать в соблюдении всех необходимых для конкурса формальностей, и российский, главным призом которого будет поездка на MAX Europe. Детали и условия будут объявлены позже. Отличные новости! Далее все желающие переместились в ближайшую пиццерию, в которой не было недостатка в пиве и всем остальном необходимом. Народу было так много, что несмотря на кучу сдвинутых столов, некоторые сидели обособленно. И, опять же, общение на профессиональные, околопрофессиональные и непрофессиональные темы. Интересным моментом было привезенное Ростом с Украины из полтавской области копченое сало от элитной генетически немодифицированной свиньи. Это было божественно! Не знаю, как ему удалось провезти наркотик через границу, но я с него реально тащился Сидели мы до самого закрытия заведения, но в 12 ночи нам с Vertex’ом пришлось убежать на поезд в Питер. Рост же по случаю приезда задержался еще и на сегодня (сейчас, наверное, трясется в поезде: удачно доехать!). Что же я могу отметить по поводу этой встречи:
Приведу еще ссылки на уже опубликованные отчеты со встречи: |
Заменяем стандартные курсоры во Flash
Учимся изменять стандартные изображения курсоровЧасто бывает, что в соответствии с задумками дизайна, или по другим причинам нам нужно изменить стандартное изображение курсора во Flash на другое, своё собственное. Допустим вы хотите сделать анимированный курсор, наподобие “песочных-часов”, что появляются в |
По горячим следам второй встречи RAFPUG Только сегодня утром с поезда, поэтому напишу кратко и под впечатлением. Побывала на второй встрече RAFPUG, а главное, послушала Andrew Shorten и Enrique Duvos в рамках Adobe Flex and AIR Pre-Release Tour. Именно от докладов Andrew Shorten и Enrique Duvos у меня наиболее сильные впечатления. Мы так долго этого ждали, и вот они приехали в Россию. И было, что послушать. Если вы это пропустили, то могу только посочувствовать, потому что даже просто послушать было приятно. Выступления очень хорошего уровня. Уровня, к сожалению, пока не достижимого в России. В общем, нам есть к чему стремиться - и то, к чему можно стремиться было проиллюстрировано. Первое выступление Andrew Shorten пытались переводить (с посильной помощью Кости). Не знаю, как кого, но меня перевод только отвлекал от сути, поэтому радует, что остальные выступления евангелистов прошли без перевода. Даже вопросы разработчики задавали на английском языке, что не может не радовать, так как говорит о том, что сообщество становится все более профессиональным. И Andrew Shorten, и Enrique Duvos рассказали много интересного, поэтому настоятельно рекомендую посмотреть их презентации и видео-записи выступлений. Лично для меня самыми интересными моментами были рассказ про BlazeDS и Open source. Среди примеров приложений, сделанных на Flex приводился Buzzword, который был приобретен компанией Adobe. А это говорит о том, что Adobe сейчас заинтересован в таких web-приложениях. Более того, Adobe предлагает российским разработчикам участвовать в конкурсе на лучшее Flex 3, AIR приложение, и в качестве приза предлагается поездка на следующий Adobe MAX в Европе. Завершали встречу выступления Кости, Ивана Дембицкого и Артемия Малкова. Константин уже по традиции поведал нам о том, что такое RIA. Если есть еще люди, которые не знают, что это такое - убейте себя апстену. Иван кратко поведал о том, как развивалось flash-сообщество до того, как Adobe все-таки обратил свое внимание на Россию. Удивительное рядом - ни слова про кривые Безье. Артемий же рассказал о том, насколько может быть полезным применение flash-платформы в российском образовании. Теперь совсем кратко о неофициальной части. Приятно, что команда riapriority была почти в полном составе, не было только Graann. Но мы будем работать над посещаемостью. Жаль, что неофициальная часть началась очень поздно и необходимо было бежать на поезд. Но ведь мы все еще встретимся. |
Разновидности Flex-специализаций Яков Файн обещал флексовый бум в 2008 году. И вот он настал и флекс-программисты сейчас в большом дефиците (имеются ввиду, наверно США). В настоящий момент его команда работает над двумя проектами, суть которых состоит в переносе приложений с Java на Flex. В этих проектах естественно участвуют Flex-разработчики. Поэтому вашему вниманию предлагается их классификация: 1. Разработчики GUI (графического пользовательского интерфейса) 2. Разработчики Flex-компонентов 3. Flex-архитекторы К первой группе относятся люди, способные создать внешний вид приложения. Это так называемая стартовая позиция в иерархии Flex-профессий. Вам необходимы лишь базовые знания программирования. Статьи и презентации евангелистов создают впечатление, что работа с Flex достаточна проста - накидал компонентов, выровнял их, повесил пару функций на кнопки и вуаля. Как Visual Basic в вебе. Этому легко обучиться самому, поэтому не ждите больших дидвидендов от этой позиции, так как многие также легко могут это постигнуть. GUI разработчики взаимодействуют с веб-дизайнерами, которые создают шаблоны приложения. Рассмотрим следующую позицию - разработчики компонентов. Эта каста должна объединять в себе знания предыдущей группы плюс знания в области объектно-ориентированного и событийного (event-driven) программирования. Знания паттернов проектирования также поможет, но здесь будьте осторожны. Особенно, это относится к людям, пришедшим из Java. Не злоупотребляйте паттерном MVC. Шаблон, созданный дизайнером, должен быть разбит на несколько компонентов, взаиммодействующих друг с другом. Поэтому использования паттерна Mediator здесь подойдет лучше (пример). Также помните, что, хотя ActionScript 3 очень похож на Java, он дает нам динамическое программирование, поэтому нет необходимости создавать тонны строго определенных объектов как в Java. Третья группа знает все, что и две предыдущие плюс эти люди имеют представление обо всем приложении в целом, о его структуре, способах взаимодействия с сервером, взаимодействия между компонентами, эффективности его работы. Flex-архитектор никогда не предложит использовать фреймворк для создания простого видео-плеера (пример). Эти знания за неделю не получишь, здесь нужно как серьезное обучение, так и практический опыт и знания других языков программирования. В небольших командах обычно последние две специализации объединены в одном человеке. Если для вашего проекта необходимо создание собственного фреймворка на основе Flex-фреймворка, то вам понадобятся фреймворк-кодеры. Ну и как в Голливуде: Если вы хотите изучить Flex, дерзайте и вступайте в растущее Flex-сообщество. Решите, кем вы хотете быть и идите к этой цели. Be what you can be. Оригинал |
Вторая встреча RAFPUG. Дети - наше будущее. Владелец "Быстроупака" был чрезвычайно доволен. "Красиво составлено, - решил он, - под таким соусом и деньги дать можно. В случае удачи - почет! Не вышло - мое дело шестнадцатое. Помогал детям, и дело с концом". Вторая встреча состоялась 14 января 2008. Несколько ключевых моментов: комьюнити, доклады, место проведения, дети. Место проведения Место нашли быстро, благодаря фотографиям, размещенным в анонсе. Иначе, можно было бы долго плутать между длинных заборов. Итак, к 17 часам мы оказались в заведении, именуемом "Московская физико-математическая школа №2". Кстати, впечатление вполне положительное - всё чисто, ухожено и культурно. Рядом со входом уже курили участники встречи в том числе Рост, Иван, Константинер, Таня и другие сотоварищи. Поздоровались - уухх руку не буду неделю мыть! Несмотря что это только вторая встреча флашеров, а лица все знакомые и как-то всё по-доброму. Проходим в актовый зал - народу в этот раз явно больше. Сидят дети - по-видимому учащиеся в этой школе. Доклады После вступительного слова о пользе и благодарности компании Adobe, микрофон взял Andrew Shorten. Несколько раз оглушенный высокочастотными писками и скрипами из динамиков, он произнес хвалебную речь новым достижениям Adobe в области RIA. Доклад сопровождался переводом, что было хорошо для понимания, но убийственно для времени проведения мероприятия. Зато дети не скучали и внимательно слушали. После доклада много времени убилось на вопросы слушателей, в принципе не сильно важные и интересные. После буфета, последовал доклад про Flex 3. На этот раз обошлись без перевода и мне пришлось включить свой английский. Дети начали потихоньку линять. После нескольких вопросов-ответов, слово взял Enrique Duvos. Доклад читался на английском с испанским акцентом. Этот чертов испанец, в свойственной им манере, так зашустрил, что пришлось включить свой быстрый английский. А он у меня еще не доделан. Поэтому, информация усваивалась частично и большей частью читалась с экрана. Но на экране тоже было всё мелко и с нашего ряда неразборчиво. Перекусив парой-тройкой булок в буфете, мы перешли к заключительной части. Заключительная часть была сильно скомкана. И не удивительно. Уже был 10й час. Constantiner, уложившись в 10 минут поведал о RIA. Что можно рассказать о RIA за 10 минут? Только общие фразы, которые в основном нам всем уже известны. Жаль, что мероприятие началось так поздно - я убежден, что Костя хотел нам рассказать гораздо больше и интереснее. В конце мероприятия провели розыгрыш призов. Все участники заполнили анкеты, из которых и выбирались счастливчики. Призы были действительно ценные - коробки с Flash CS3 (или Master Collection?), Flex Professional, iPhone nano, ну и по мелочи - рюкзаки. Правда призы застряли где-то по дороге, но обещали что их доставят почтой. А вообще, ребята из Adobe вызвали только положительные эмоции. Веселые, симпатичные парни, вызывающие доверие и располагающие к разговору. Всё шутили, но на вопросы отвечали довольно серьезно. И не удивительно - специально обученые бойцы Adobe. Впечатления
|
2008-01-13 |
Еду на RAFPUG! ;-) Я успел сделать свои дела и даже внезапно сломавшийся вчера и срочно требующий замены завтра холодильник не в силах меня остановить. Теперь, чтобы попасть на встречу Adobe Russian Flash Platform User Group, осталось только купить билет на поезд, йохохоу! Выехал на вокзал. |
2008-01-12 |
Чем теперь занимается Джонатан Гей — отец технологии Flash
Четыре Макромедийца, не ставших АдобовцамиНо во время слияния уже Adobe и Macromedia Джонатан сделал шаг в сторону и не примкнул к Adobe. Так же поступили трое его бывших коллег по Macromedia: Гари Гроссман (Gary Grossman, бывший ключевой разработчик Flash Player и языка ActionScript), Питер Сантаньели (Peter Santangeli, бывший менеджер Flash Media Server и Breeze) и Роберт Татсуми (Robert Tatsumi, соавтор Flash еще со времен FutureWave — это он сделал таймлайн, панели пользовательсокого интерфейса, библиотеку и первый набор UI Components).Не войдя в Adobe, эти четверо основали собственную компанию Software as Art. Теперь они вместе управляют этой компанией, и среди них есть только один не-Макромедиец — Мэттью Смит (Matthew Smith — похоже, весьма зубастый маркетолог). Software As Art занимается встраиваемыми системами для экономичных и экологичных домов. Их слоган — "Интерактивное Управление Энергией" (Interactive Energy Management). Интересно будет за ними понаблюдать — судя по их новостям и вакансиям, дел хватает. |
2008-01-11 |
uint лучше не использовать для счета. AS3 В обсуждении "AS3: uint на много медленнее, чем Number" выясняется, что тип uint лучше не использовать для счетных целей, если конечно нет особой необходимости. Сам с собой он складывается ужасно, с Number еще ужаснее. |
Бьюсь головой об стол — не попадаю на RAFPUG 2 Я, скорее всего, не попаду на вторую встречу Adobe Russian Flash Platform User Group. Очень хочу вас всех повидать, но — не получается. Внимание: уточнено время и место встречи, читайте подробности у Кости Ковалева и в гугл-группе RAFPUG (тем же — о регистрации). Не пропустите голосование за логотип RAFPUG. Харьковчанам, едущим на RAFPUGОдин человек их Харькова на встречу уже едет — это Pirrest. Он предлагает скооперироваться всем желающим скрасить время пребывания в поезде — отставляйте комментарии. |
Adobe отдыхает![]() |
Pacifica - VoIP-проект от Adobe На MAX 2007 Adobe анонсировал новый проект под кодовым названием "Pacifica". Было продемонсрировано простое приложение с использованием высококачественного голосового кодека. Качество было настолько высоким, что некоторые не верили, что это VoIP. Несколько фактов о Pacifica:
Планы по развитию проекта:
Участвовать в разработке можно пройдя небольшой опрос. Официальный сайт проекта |
2008-01-10 |
Уточнения по ближайшей встрече RAFPUG Появились детали по месту и времени проведения ближайшей встречи Российской Группы Пользователей Flash-платформы в рамках Adobe Flex and AIR Pre-Release Tour, о котором я уже писал. Это будет 14 января (понедельник). Начало регистрации в 16.30. Начало в 17.00. Место проведения: Кстати, у нас в Питере есть на станции метро Московская Московский универмаг (МУ). Интересен он тем, что располагается симметрично по двум сторонам Московского проспекта, за что и получил свое народное прозвище Муму. Отсюда и глагол “мумить", верно характеризующий жизненное кредо учаснегов RIAPriority.com |
Изменения локализации во Flex 3 Ранее я уже писала про рантайм локализацию в посте Легкая локализация во Flex. А будет ли runtime локализация? И с выходом третьей беты Flex 3 можно с уверенностью сказать, что рантайм локализация не только будет, но уже и есть. И вообще, радуют изменения которые произойдут в третьей версии Adobe Flex в области локализации приложений.
Мало того, что вы можете запросто сделать кнопочку переключения языков у себя в приложении, так еще и при этом переключении менять не только надписи GUI, но и картинки, звуки и например размер шрифта. Кстати, изменение размера шрифта для некоторых языков прямо таки жизненно необходимо, на мой взгляд. Более того, locale, загружаемую по умолчанию, можно определить в параметрах HTML обертки. А это говорит о том, что вы можете доставлять один swf файл со всеми языками и только в html в параметрах определять, какой язык сейчас увидит пользователь. А теперь о менее приятном - о том, что вам придется переписать в своих существующих приложениях для перевода их на Flex 3 SDK и использования выше обозначенных бонусов. Установив третью бету 3-его Flex, сразу же бросились в глаза варнинги по поводу устаревшего применения ResourceBundle с помощью соответствующего метатега.
Примечательно, что использование директивы @Resource не изменилось. Однако в доках недвусмысленно намекается на то, что лучше не использовать этот способ, так как например, он не позволяет использовать переключение locale в рантайме. Почему же так не нравится компилятору применение метатега ResourceBundle? Потому что при таком способе, вы лишаетесь удовольствия компилить приложение сразу с несколькими локалиями. Новый способ взаимодействия с resource bundle - это использование ResourceManager. А скорее всего, вы будете использовать свойство resourceManager, которое теперь есть у всех потомков от UIComponent, Formatter или Validator. Еще одной приятной вещью станет то, что не обязательно теперь файлы ресурсов делать полностью копиями друг друга. Можно забыть при экспшены при обращении к ресурсу, так как в localeChain можно задать массив locale-ей. Тут и произойдет чудо. Например, ваш язык приложения русский, но недостающие строки могут автоматически цепляться из английских ресурсов. Все эти радости можно увидеть уже на существующей Flex 3 SDK 3 beta 3. Например, в дополнительных параметрах компиляции прописываете -locale=US,RU,GE. В общем, поздравляю нас всех - локализация приложений станет удобнее! |
Средняя зарплата Flex-разработчика: 100 у.е. в час Ресурс HotGigs утверждает, что средняя стоимость одного часа работы Flex-разработчика составляет на сегодня 100 долларов в час. Минимальная цена за час flex-работы равна $75, а максимальная — $150. Весьма оптимистычные цифры, я прав? HotGigs также предлагает менеджерам калькулятор бюджета Flex-приложений. Также открыта специальная группа ruFlexJobs для размещения любых объявлений, связанных с заказами на технологию Flex — пусть флекс-разработчик и заказчик найдут там друг друга. |
Осваиваем Papervision3D. Часть III. Примеры Продолжаем вгрызаться в Papervision 3D. Для тестирования я выбрал пример "Panorama" из папки "examples". Кстати, попутно еще раз убедился в пользе SVN: скопировав папку с примером в рабочий каталог, я скопировал находящуюся в ней папку ".svn" - теперь в любое время, я могу выбором из контекстного меню проводника легко обновить файлы прямо с сервера SVN-репозитория. Чертовски удобно - пора ставить SVN-сервер! Создаю во FlashDevelop проект типа "Flash IDE Project". В свойствах проекта, в "Classpaths" указываю путь к классам Papervision3D "...\as3\trunk\src". Это нам нужно для того, чтобы работала проверка ошибок, подстановка и другие удобства. Как только классы подцепились, в панели "Task Panel" FlashDevelop появился список задач TODO, что говорит о незавершенности и бурном развитии проекта. Теперь надо указать путь к классам во Flash IDE. В Getting Started FAQ нам советуют установить путь в свойствах среды: "Edit -> Preferences -> Actionscript -> Actionscript 3.0 settings -> Classpath". Пожалуй не буду обобщать и укажу путь для моего конкретного FLA файла в "Publish settings -> Actionscript Settings -> Classpath". Кстати, там уже есть путь к классам, но только относительный, а раз мы скопировали в другую папку, то, конечно, неправильный. Запускаем проект - всё компилируется без ошибок, запускается панорама - мы внутри куба, на стенах которого надписи. Попробуем что-нибудь изменить. Например, мне не нравится качество отображения надписей. Всё из-за того, что текстуры маленькие и качество сцены установлено в LOW. Увеличиваем размер одной из текстурок - например, та что "BOTTOM". Хе, на размер 3000 выскочило исключение. Ладно, поставим 2000. Забавно натягивает. Заметил хитрый ход: изменение качества сцены сильно не меняет картины, однако, ресурсов процессора потребляется заметно меньше. Продолжаем смотреть примеры. В общих чертах - создается сцена, создается камера, создаются материалы для объектов, создаются объекты и добавляются в сцену, выставляются параметры и по ENTER_FRAME осуществляется управление сценой и ее перерисовка. Примеров вполне достаточно, чтобы разобраться и начать применять Papervision3D в своих проектах. Чем мы активно и займемся в ближайшее время. |