Flex и RIA блоги
2008-02-23 |
Flex 3 выходит совсем скоро? Ted Patrick в своем репертуаре. Своей публикацией “A long time ago in a galaxy far, far away…” он сбивает с толку… мне кажется что он хотел сказать, что релиз Flex 3 произойдет со дня на день… да и скриншот прилагает соответствующий… |
2008-02-22 |
Релиз MDM Zinc™ 3.0 Соврешенно неожиданный для меня релиз - MDM Zinc™ 3.0. Чего-чего, а привыкнув к версии 2 - эта версия свалилась как снег на голову. Zinc™ 3.0 - это Rapid Application Development для Adobe® Flash. Например с английского - Rapid Development переводится как бурное развитие :) И это действительно так. Вот небольшой список новинок:
Ну и естественно - поддержка: :) Это небольшое описание новинок нового Zinc. |
Рассказ Aqua, давшей UAFPUG место встречи, формат и печенье Встреча UAFPUG0 проходила в очень удобном формате круглого стола. Это дало возможность сидящим лицом друг к другу участникам сначала хорошенько раззнакомиться, а потом беспрепятственно общаться в широком спектре тем. Чем-то встреча была похожа на рабочее совещание людей, хорошо знающих как друг друга, так и предмет обсуждения. Данную жаркую форму общения хотелось бы сохранить и впредь :) Возможной же она стала благодаря Aqua, вовремя предложившей для встречи очень удобное помещение практически в центре города. 11 февраля она написала свой собственный рассказ о встрече UAFPUG0 — читаем, радуемся, и говорим: спасибо тебе, Aqua! |
Как сделать flash баннер по техническим требованиям площадки? Все очень просто. Сначала надо узнать эти требования, обычно они публикуются на сайте предоставляющие рекламное место в разделе реклама или реклама на сайте. Если же не нашли ни чего похожего, не советую делать баннер как вам хочется, лучше написать в службу тех поддержки сайта, с просьбой прислать вам тех требования для flash баннера. |
Технические требования к баннерам Технические требования к баннерам на разных площадках. Начнем с главных рекламоразместителей рунета. Список далеко не полный, но начало положено. (more…) |
Внутренности Flex Framework. Flex SWF. Flex Заканчиваем изучать первую часть "Внутренностей Flex Framework". Всё в чём я сомневаюсь, буду помечать знаком (#?) где #- ID сомнения (для последующего комментирования). SystemManager
Инициализация Flex SWF
Инициализация Flex SWF. Frame 1
Инициализация Flex SWF. Frame 2
Информация, приведенная выше, ознакомила нас в общих чертах с процессом инициализации Flex-приложения. Если не обращать внимания на пару вопросов, всё предельно ясно. В контексте темы загрузки и инициализации, хочется еще раз упомянуть создание прелоадера для Flex-приложения. Любопытно, что в описанном этой статьей методе, специально указывается мета-тег для генерации второго фрейма Продолжение "внутренностей" - вторую часть этого увлекательнейшего документа - мы очень жаждем увидеть у Роста на горячо нами любимом Флэш Потрошителе. |
2008-02-21 |
AIR for Linux: Уже pre-beta! Итак, разработка AIR под Linux идет полным ходом, и уже началось закрытое тестирование. Точнее, относительно закрытое, т к несмотря на отсутствие публичной беты, можно попытаться добраться до нее уже сейчас. Информацию об этом можно почерпнуть здесь. Затем ожидаются публичные бета-версии. На данный момент, судя по описаниям, большинство приложений работает нормально, но бета еще не функционально полноценна. |
uafpug0.as — отчет о встрече флэшеров в Харькове Угадайте с нулевого клика, кто написал отчет о харьковской встрече флэш- и флекс- разработчиков в формате ActionScript? С фотографиями! С исходнегом прелогаецо? Update: автор сообщает, что код отчета был написан быстро, а вот отладка заняла время. |
Метапрограммирование во Flex при помощи метаданных Документация по Flex утверждает, что метаданные используются во Flex-приложениях для указания компилятору и парсеру дополнительных параметров классов, их свойств или методов. Например, в коде AS3-класса можно указать его события с помощью мета-тэгов [Event] (пример). После этого компилятор и парсер кода начинают "понимать" указанные события и при использовании данного AS3-класса в качестве MXML-компонента среда разработки Flex Builder будет выдавать к нему соотвествующие подсказки кода. А указав для свойства класса мета-тэг [Inspectable], вы сделаете его доступным инспектору свойств компонента (панель "Flex Properties"). Это встроенные мета-тэги, вот их полный список: Metadata tags in Flex 3. Присказка закончилась, дальше идет сказка. Использование собственных мета-данных в AcationScript-классахСо времен Flex 2 во Flash Player API встроена возможность получать доступ к мета-данным классов во время выполнения через т.н. Reflection API (методdescribeType() ). Это недокументированная возможность, поскольку документация говорит только об использовании мета-данных компилятором.
Более того, можно не только получить доступ к встроенным метаданным в время выполнения, но и вводить собственные мета-данные, не предусмотренные разработчиками Flex Framework. А чтобы они вместе со встроенными мета-данными попали в откомпилированное приложение, нужно указать их в опции компилятора Примеры использования собственных метаданных во FlexОткрываются возможности, осознать которые — целая отдельная задача. Есть примеры. Вот Кристоф Конрац показывает, как упростить общение с базой данных. С помощью собственных мета-данных он описывает структуру таблицы БД в своем ActionScript-классе. Затем показывает, как просто можно работать с описанной в мета-данных таблицей БД, не используя никакого SQL — только ActionScript.Вот более свежие примеры от Эли Гринфилда, демонстрирующие, как с помощью собственных мета-данных можно вызывать функцию при каждом изменении некоего AS-выражения, или как создавать одно- и дву-направленные связывания между частями вашего компонента, или как в декларативном стиле назначить обработчик события части вашего компонента (online demo). И Кристоф, и Эли предоставляют исходники к своим экспериментам (не очень сложные). |
Использование Web-сервисов под Flex 2 Бродя по сети, наткнулся на FleXtense -программу, которая создает по WSDL (определениям Web-сервиса) AS3 proxy-классы для соответствующих вызовов. В ихних примерах есть программа, похожая на ту, что демонстрировали евангелисты на RAFPUG-2 - а именно, получение погоды с веб-сервиса. Поскольку Flex 3, в котором есть похожая функция, еще не вышел, а 3-я бета демонстрирует не очень стабильную работу, может, кому и пригодится. |
Ньюансы с табуляцией внутри приложения под IE Небольшой tips’n'trick для тех кто борется или будет бороться с тем, что IE “отхватывает” фокус при навигации внутри Flex приложения табом. Все что нужно сделать, это прописать параметр <param name=”SeamlessTabbing” value=”false”/>. Который реализован для “нативной табуляции” с целью устранить “замкнутость” Flex приложения в себе, чтобы пользователь не “табался” только внутри приложения, но и мог перейти табом в адресную строку браузера и т.п. Идея хорошая, только иногда браузер отхватывает таб не дождавшись пока пользователь пройдет табом все нужные места в приложении, что вызывает дискомфорт. |
Ньюансы с табуляцией внутри приложения под IE Небольшой tips’n'trick для тех кто борется или будет бороться с тем, что IE “отхватывает” фокус при навигации внутри Flex приложения табом. Все что нужно сделать, это прописать параметр <param name=”SeamlessTabbing” value=”false”/>. Который реализован для “нативной табуляции” с целью устранить “замкнутость” Flex приложения в себе, чтобы пользователь не “табался” только внутри приложения, но и мог перейти табом в адресную строку браузера и т.п. Идея хорошая, только иногда браузер отхватывает таб не дождавшись пока пользователь пройдет табом все нужные места в приложении, что вызывает дискомфорт. |
Обработка клавиатуры/фокуса. Flex Продолжаем знакомиться с "внутренностями" Flex. Статья посвящается обработке клавиатуры и фокуса. Если с клавиатурой всё ясно, то про фокус можно сказать, что речь идет не о фокусах и трюках, а о понятии активности или готовности в данный момент времени какого-либо элемента интерфейса принимать события от клавиатуры. Обработка клавиатуры/фокуса
Обработка клавиатуры/фокуса. Основы
Обработка клавиатуры/фокуса. Композиция
Обработка клавиатуры/фокуса. Композиция. Slider
Обработка клавиатуры/фокуса. Подведение итогов
В статье, у меня возникло одно непонимание - (4?) связанное с композицией Slider. Поэтому фразы "Easier to implement than composites" и "We will probably re-implement as composite in future..." я выразил своими словами. Возможно, я ошибаюсь. |
lifeflash ожил Наконец это случилось - LIFE.Flash ожил, надеюсь вы его еще помните…. Welcome! :) P.S. А тем временем сайту LIFE.Flash исполнился год. :) |
2008-02-20 |
О компьютерных играх Читаю про разработку компьютерных игр (хотя, вероятно, будет интересно только людям, непосредственно с этим столкнувшимся, или интересующимся общими вопросами по управлению проектами) http://dtf.ru/articles/read.php?id=3755 - Игры: как это делается (юмористическое) Пара моих демо-игр: http://gm2flex.janvarev.ru/Examples (с использованием флекса, используется собственноручно разработанная библиотека) |
Red Keds ищет братьев по разуму: работа для флэш-химиков Привет! Интересное начало? Читаем дальше. |
Шэнь Бухай, ActionScript, Упанишады и ASP.NET на 13 этаже Короткий заголовок не сможет уместить всю гамму интересов Алексея из Москвы. Посты его определенно индуктивны. К примеру, возьмем короткую заметку "Эзотерические языки программирования" — пригодны для описания Вселенной. Или "Flex и новые демо-мейкеры". Опять же — собственные мысли по актуальной проблеме человеческих кадров и о том, что "эзотерика" — есть такой бизнес (да, мода на бубны ушла, сисадмин берет гармонь — Рост). Есть у Алексея и совсем серьезные статьи: подсистема партнёрской программы, обзор методологий разработки ПО и распределение задач по группам. Мне это брожение ума понравилось (пусть там и не тру флэш блог). |
Жизненный цикл компонента. Flex Статья Добрался до самого вкусного — внутренности Flex Framework навела на очень важный документ, расставляющий многие точки над i, которые до этого валялись где-то в области догадок. Итак, источник вот он. Всё в чём я сомневаюсь, буду помечать знаком (#?) где #- ID сомнения (для последующего комментирования). Жизненный цикл компонента. Дисплей-лист.
Жизненный цикл компонента. Application.
Жизненный цикл компонента. Создание экземпляра компонента.
Обратите внимание, что события инициализации порождаемых объектов генерируются раньше события инициализации вашего компонента.
Жизненный цикл компонента. Несколько правил.
Жизненный цикл компонента. Запуск. Инициализация.
Жизненный цикл компонента. Запуск. Валидация.
Жизненный цикл компонента. Запуск. Завершение.
|
2008-02-19 |
Добрался до самого вкусного — внутренности Flex Framework Вечер. Офис опустел. Я собираюсь домой и сейчас распечатаю первую часть документа, называющегося "Внутренности Flex Framework". Скачайте и почитайте его вместе со мной — "Flex Framework Internals Part 1" (есть также Part 2). Начинаем через 5 минут. К слову: О парнях из Adobe. Эли Гринфилд — еще больший |
Adobe Director 11 - официально! Судьба Director’а долго была неясной. Проиграв флешу во многих областях применения, отставая по распространенности плеера, он ушел на задний план. Но постепенно стало ясно, что Adobe не забросил развитие Director, и вот официальный анонс появился на сайте. Главные особенности: нативная поддержка DirectX 9 3D и встроенный движок Ageia PhysX, растровые фильтры и поддержка Юникода, интеграция с Flash CS3 с возможностью непосредственного редактирования мувиков с AS2.0 . Ну и конечно обновлен пользовательский интерфейс. Обо всех новшествах можно прочитать здесь. На данный момент Director 11 доступен для предварительных заказов, Trial-версия будет доступна для скачивания в марте. |
Не так страшен Флекс, как его малютки :) Сегодня в Skype-чате UAFPUG прозвучала фраза флэш-разработчика Олега Галабурды: Собсна, я в этом месте меняю своё мнение про Флекс, а точнее про представление MXML -> AS3. :) Итого - Флекс не так уж и страшен, как его малюют, но отгребать рискую долго. Этот эффект вызвало прочтение короткой статьи "Flex для Флэшеров" и пара фраз в чате! |
9 дней, или приблизительная скорость обработки багов в Adobe JIRA Вчера сервис учета багов Adobe JIRA сообщил мне, что исправлен баг в дистрибутиве BlazeDS. По этому случаю можно приблизительно оценить скорость обработки дефектов, задокументированных через официальный ресурс Adobe. Уточню: именно скорость обработки пользовательских заявок, а не время исправления ошибки, которое может сильно варьроваться в зависимости от ее сложности. Здесь сложность близка к минимальной. Ошибка заключалась в наличии одного лишнего символа в имени файла: детальное описание и способ обхода я описал в момент обнаружения и в тот же день создал в Adobe JIRA соотвествующую запись. Данная ошибка дожна быть проста в исправлении; возможно, она вообще является чисто механической. А поскольку временем исправления ошибки в данном случае можно пренебречь, то оценим время обработки заявки на исправление ошибки в Adobe. Дата обнаружения ошибки: 2 февраля 2008 г. (суббота); дата исправления: 18 февраля 2008 г. (понедельник). Итого 16 дней. Вычтем выходные (6 дней) и получим 10 дней. Дадим один день на исправление, regression testing, упаковку и доставку. Итого — девять рабочих дней. Весьма оперативно работают в Adobe, не так ли? Голосовать за "любимые" баги сегодня — значит меньше работать завтра! Update: Приятно удивился, насколько быстрее стал работать сервер Adobe JIRA. |
Как настроить правильную выдачу AIR-файлов с сервера Чтобы сервер давал пользователям скачать с него AIR-файлы, нужно указать ему их MIME-тип: AddType application/vnd.adobe.air-application-installer-package+zip .air Если вам повезет, тип указывать не придется. Если не повезет, или везение закончится при обновлении серверного ПО, то пользователи вместо AIR-файлов будут получать не AIR-файлы. Например, на странице приложения "Google 3d Map on AIR" Mat сказал, что не может скачать AIR-файл, каждый раз получая вместо него ZIP-файл с тем же именем. Я проверил и убедился, что попытка скачать файл приложения Google3DMap.air действительно приводила к загрузке файла Google3DMap.zip — это архив с исходниками. Интересная особенность: баг был виден через IE, но в Firefox все работало как надо. Это было похоже на тупик, но проблема решилась просто. Я вспомнил виденную ранее (когда писал про AIR-бейджи) статью на сайте Adobe — о том, как задать MIME-тип для AIR-приложения на сервере. Погуглив по словам "adobe air server mime type handler" я нашел это описание лучших практик установки AIR-приложений из браузера. Там же было и решение данной проблемы; нужно всего лишь прописать нужный MIME-тип, как показано в начале этого поста: AddType application/vnd.adobe.air-application-installer-package+zip .air Я внедрил эту информацию в Apache через файл .htaccess в соответствующем каталоге — и все. Если вы решите поступить так же, то учтите, что предпочтительнее добавить MIME-тип в конфигурацию сервера (а не в .htaccess) и сохраните производительность, ведь конфигурация читается один раз на старте, а файлы .htaccess запрашиваются значительно чаще — при доступе к файлам. |
playerversion.com На днях Арал Балкан (Aral Balkan) запустил свой долгожданный громкий проект, на разработку которого были затрачены многомиллионные инвестиции… Шучу. На самом деле проект, о котором сейчас пойдет речь был собран им чуть ли не на коленке. А дело было вот как… |
2008-02-18 |
Kill Bill Browser. Простецкий способ убить браузер АС3 кодом, вставляем-вызываем: public function ups() : void
{ var arr:Array = [1,2,3]; for (var i:int=0; i<arr.length; i++) { arr.push(arr[i]); } } Из кода все понятно, что и почему.
Но на быстрых машинах за дефолтные 60 секунд успеет сделать свое дело… И еще, строка timeout period of 15 seconds
насколько видно из работы просто захардкоджена во флекс дебагер т.к. число 15 вообще берется почти с потолка и не зависит от выставленого во флешке максимального времени втыкания. |
Журнал Adobe Magazine, два конкурса и еще один конкурс1. 30onair — конкурс для флэшеров и просто креативных ребятЦель этого конкурса от Теда Патрика — собрать как можно больше 30-секундных роликов, отвечающих на любой из этих вопросов: Почему Flash Player? Почему AIR? Почему Flash? Почему Flex? Почему ColdFusion? Почему AJAX? Почему JavaScript? Почему ActionScript?Условия конкурса: Для этого конкурса Тед создал RSS / Atom фид — можно встраивать в свои приложения. Приз: призы. 2. "Что ты можешь за $20 000" — конкурс для креативных ребят и просто флэшеровЦель конкурса "See What's Possible": показать в 15-секундном ролике, как крут Фотошоп от Adobe. Видео должно включать лого Photoshop, иллюстрирующее тему "See What’s Possible". Работа-победитель будет использована Adobe как часть надвигающихся маркетинговых кампаний Photoshop. Прочие достойные ролики будут пиарить своих создателей на ресурсе Cut and Paste.Приз: $20 000 за лучший ролик, плюс еще призы. 3. Adobe Magazine — журнал от AdobeAdobe выпускает собственный бесплатный журнал. Регистрация > скачать 10 Мб.4. Конкурс Russian Flash Awards-2008А о том, что начат прием работ на конкурс Russian Flash Awards, вы уже читали у Кости Ковалева, но я напомню: победитель едет на Adobe MAX, что есть круто и вместе с тем справедливо.Вот вам еще три стимула, чтобы перестать читать дурацкие блоги и заняться делом! |
Видео-урок по работе с Tweener — чистый AS3, 2 минуты Простоту и элегантность библиотеки Tweener я уже оценил на одном реальном проекте. Пусть она и не самая быстрая, но ее простота очень мне по вкусу. Есть один-единственный класс Tweener. Чтобы добавить в AS3-приложение анимацию, достаточно вызвать на этом классе статический метод Да что там рассказывать — все уже показано. Некто IMUGI записал видео-урок и выложил его в открытый доcтуп: Видео-урок "Работа с библиотекой Tweener" — всего 2 минуты. Кстати, встречайте флэш-блог: /iMUGi\. |
Синхронизация случайных чисел для клиент-серверных приложений. Посетила идея. Догадываюсь что она не нова (как раз, возможно, она всплыла из глубоких отложений моего серого хранилища данных), но чтобы не забыть - фиксирую. Итак, есть задача случайным образом распределять какие-либо данные на клиентских приложениях. При этом должны генерироваться случайные, но одинаковые на всех клиентах числа. Для этого, при инициализации и синхронизации взаимодействия клиентов и сервера, сервер генерирует гамму случайных чисел и шлет ее всем клиентам. Клиенты сохраняют полученную гамму. Клиенты имеют свои "прозрачные" методы random(); , которые выдают случайное число. На самом деле, метод random(); при вызове попросту выбирает каждый последующий элемент из гаммы и возвращает полученное значение. После выборки последнего элемента, указатель перемещается на начало гаммы.Для "подновления" генерируемых случайностей, можно (а во многих случаях нужно) подгружать новую гамму. При этом, процесс подновления можно легко встроить в протокол обмена данными. Периодически "пристраивая" свежую гамму в ответы сервера на запросы, требующие синхронизации клиентов, можно делать "свежие" вливания в вероятность случайных чисел. |
Список с указателем. AS3 Понадобилось использовать простой список с указателем, на подобии XML, с навигацией по списку next/previous. Ручками это реализовать проблем нет - хочется готовое поюзать. Думал, уж наверняка есть какой-нть класс чтонть типа хзCollection в AS3. Ан нет. В Flash AS3 API не нашел :(. Может быть я плохо искал? |
О RAFPUG-3 Напишу-ка я впечатления о прошедшем мероприятии. Как сказал Артемий Малков, “очень приятно, что народ собирается за полчаса до начала регистрации”. Действительно, я был в Торонто уже в 13-15, и уже в это время там было несколько людей, включая Александра Козловского, докладчика по AIR и Papervision 3D. Пообщавшись с ним, я узнал, что Design Mode в последней версии Flex Builder 3 beta 3 падает не у меня одного Первым делом Артемий рассказал о конкурсе русских флеш-работ Russian Flash Awards - 2008, показав, насколько я понял, собственноручно подготовленный видеоролик с демонстрацией работ победителей прошлых конкурсов. В этом году появилась поддержка Adobe, а также несколько дополнительных номинаций - конкурс по Flex и AIR-приложениям. Прием работ - до 30 апреля 2007. Далее производилась раздача призов, выигранных в предыдущую встречу RAFPUG, во время приезда евангелистов от Adobe. Выигравшим Flex Builder 3 было обещано, что он обязательно появится, когда его выпустят, и розданы майки с логотипом. К Александру таки добрался iPod nano. Далее Александр провел доклад по использованию в AIR:
В общем, очень большой объем материала был представлен нам в очень сжатые сроки. Мне лично доклад был очень интересен, но я уже многократно щупал AIR, так что мог схватывать “на лету”. Для тех, кто хочет разобраться поподробнее, Александр обещал выложить исходники в своем блоге. (Для тех, кто был на встрече - там обсуждались AS3-библиотеки FZip и AIRRemoteUpdater, их можно найти здесь) После чего был чай и кофе. К сожалению, совершенно без плюшек. Вторая часть встречи - Hands-on по Флексу. Идея, как её озвучил Артемий со ссылкой на Ростислава,”чтобы не щупавшие флекс флешеры наконец потеряли флекс-девственность” :)) В такой формулировке желающих сделать это публично почему-то не оказалось, и Артемий после чая начал рассказывать про Binding данных во флексе с надеждой, что кто-то все-таки осмелится выйти и написать хоть небольшой кусок кода. В это время прогрессивная часть разработчиков устроила что-то подобное своего Hands-on в районе термосов с чаем и кофе, благо ноутбуки были. К сожалению, не смогу назвать всех участников этого импровизированного представления (не знаю имен, прошу извинить), но, например Александр Козловский и Таня Белая помогали в отладке SkyBox в Papervision 3D, я общался с молодым флекс-разработчиком Максимом Павловым, демонстрируя некоторые собственные разработки, при наличии наблюдающего за этим процессом Dl1t. К сожалению, по некоторым независящим от меня причинам, на этом моменте мне пришлось покинуть встречу разработчиков, но могу сказать, что мне очень понравилось |