Flex и RIA блоги



2009-02-16

11:16:38, Flash-ripper.com
"Чтобы шарик не лопнул, лучше его немного сдуть

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

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

А коснулось ли вас дыхание Кризиса Животворящего? Если да, то как именно оно коснулось вас, что вы при этом подумали, почувстовали и запланировали? Ощутима ли бодрость в членах и сочленениях? Как вообще дела, ребята?


2009-02-13

22:45:07, DL1t's blog
Java -> Flash

Да, судя по всему данная связка становится реальной. Причем не просто так, а с возможностями отладки. Таким образом, flash понемногу следует путем .NET - теперь в том или ином виде байткод, воспринимаемый flash player-ом, можно получить из собственно ActionScript, C++ (Alchemy), Java, haXe. Кроме того, в случае развития Alchemy возможна поддержка и других языков. Межязыковое и меж-vm-ное безумие нарастает:)

Качать и щупать - тут.


12:48:36, Flash-ripper.com
Flex CookBook: Как добавить множество визуальных потомков в свои MXML-компоненты

Олег Галабурда опубликовал во Flex Cookbook первый февральский пост который можно занести в актив UAFPUG в конкурсе "Кукбуклук".

На английском пост Олега называется так: Adding multiple sets of visual children to custom MXML components и в нем рассказывается, как с помощью состояний решить одну популярную проблему с добавлением многих дочерних компонентов к вашим собственным. Спасибо, Олег.

Напомню, что если вы публикуете пост во Flex CookBook, AIR Cookbook или Mobile Cookbook, то вы можете не ограничиваться вхождением в историю, но и получить возможность выиграть лицензию на Flex Builder 3 или Adobe CS4 Master Collection. Чтобы это стало возможным, я должен знать о вашей публикации и сообщать о ней Эду. А Эд выдаст нам серийный номер, который мы разыграем между опубликовавшими записи. Поэтому сообщайте мне на гуглопочту rostislav.siryk каждый раз, когда пишете в кукбук.


12:48:36, Flash-ripper.com
Flex CookBook: Как добавить множество визуальных потомков в свои MXML-компоненты

Олег Галабурда опубликовал во Flex Cookbook первый февральский пост который можно занести в актив UAFPUG в конкурсе "Кукбуклук".

На английском пост Олега называется так: Adding multiple sets of visual children to custom MXML components и в нем рассказывается, как с помощью состояний решить одну популярную проблему с добавлением многих дочерних компонентов к вашим собственным. Спасибо, Олег.

Напомню, что если вы публикуете пост во Flex CookBook, AIR Cookbook или Mobile Cookbook, то вы можете не ограничиваться вхождением в историю, но и получить возможность выиграть лицензию на Flex Builder 3 или Adobe CS4 (любой набор кроме Master Collection). Чтобы это стало возможным, я должен знать о вашей публикации и сообщать о ней Эду. А Эд выдаст нам серийный номер, который мы разыграем между опубликовавшими записи. Поэтому сообщайте мне на гуглопочту rostislav.siryk каждый раз, когда пишете в кукбук.


10:55:50, Garbage Collector
Релиз Intellij IDEA 8.1

Вышла новая версия самой интеллектуальной среды разработки для Java, Groovy, Flex и Ajax — Intellij IDEA 8.1.

Вот что пишет про нее в рассылке ruFlex Евгений Потапенко:

Стала еще шустрее, поправлено масса багов с AS3/Flex.

Значительно расширены возможности по компиляции — теперь можно компилить модуль/проект сразу в начальных настройках.

Появились генераторы конструктора, toString, ну а геттеры-сеттеры уже были.

Идея может работать с Flex 4 SDK.

В общем кто планировал начать использовать идею в проектах, но никак не получалось, либо не хотелось, то думаю самое время пощупать.

Загружаем и обновляемся! ;-)


10:55:50, Garbage Collector
Релиз Intellij IDEA 8.1

Вышла новая версия самой интеллектуальной среды разработки для Java, Groovy, Flex и Ajax — Intellij IDEA 8.1.

Вот что пишет про нее в рассылке ruFlex Евгений Потапенко:

Стала еще шустрее, поправлено масса багов с AS3/Flex.

Значительно расширены возможности по компиляции — теперь можно компилить модуль/проект сразу в начальных настройках.

Появились генераторы конструктора, toString, ну а геттеры-сеттеры уже были.

Идея может работать с Flex 4 SDK.

В общем кто планировал начать использовать идею в проектах, но никак не получалось, либо не хотелось, то думаю самое время пощупать.

Загружаем и обновляемся! ;-)


10:55:50, Garbage Collector
Релиз Intellij IDEA 8.1

Вышла новая версия самой интеллектуальной среды разработки для Java, Groovy, Flex и Ajax — Intellij IDEA 8.1.

Вот что пишет про нее в рассылке ruFlex Евгений Потапенко:

Стала еще шустрее, поправлено масса багов с AS3/Flex.

Значительно расширены возможности по компиляции — теперь можно компилить модуль/проект сразу в начальных настройках.

Появились генераторы конструктора, toString, ну а геттеры-сеттеры уже были.

Идея может работать с Flex 4 SDK.

В общем кто планировал начать использовать идею в проектах, но никак не получалось, либо не хотелось, то думаю самое время пощупать.

Загружаем и обновляемся! ;-)


2009-02-12

17:22:27, Flash-ripper.com
Приложения Adobe AIR на JavaScript — не нужно делать это во Flex Builder

Многие люди пытаются приспособить Flex Bulder для создания Javascript-AIR-приложений, и некоторым это даже удается, но это не самый легкий путь (поправьте, если я неправ).

В то же время, существует два вполне рабочих решения.

Adobe AIR в Dreamweaver

Cкачав и установив расширение для создания приложений Adobe AIR в Dreamweaver, в меню Dreamweaver вы найдете пункт Site > Air Application Settings. Там можно задать все настройки приложения, включая сертификат издателя. Это неплохо работает. Один неудобный момент — добавление ресурсов в сборку приложения. Работает без ошибок, но там нет возможности рекурсивно добавить ваш каталог, например, scripts, со всеми его подкаталогами. То есть нужно добавлять каталог за каталогом. Это не создает сложностей при разработке и тестировании приложения, но вот если вам нужно импортировать сложный существующий проект, то может не понравиться. Процесс настройки приложения документирован, а разработка заключается в написании JavaScript-кода и верстке HTML. Также существуют специальные адаптеры в файле AIRAliases.js, позволяющие из JavaScript получить доступ к родным функциям самого AIR, например, для работы с файлами.

Adobe AIR в Aptana IDE

Скачав и установив расширение Adobe AIR для Aptana IDE, вы сможете создавать AIR-приложения в весьма продвинутой среде для написания и отладки JavaScript-кода.

Сейчас Аптана, пожалуй, единственная среда, в которой вы создаете AIR-проект естественным образом через меню Project > New > Adobe AIR Project. Даже во Flex Builder нет такого пункта меню, там надо на втором шаге диалога создания Flex-проекта выбрать, что это будет десктопный проект, и я уже знаю одного человека, который не дошел до этого второго шага и подумал, что Flex Builder не предназначен для создания AIR-приложений. Ведь в меню Flex Builder нет пункта типа "Create AIR Project" (на втором шаге которого предлагалось бы выбрать тип проекта — Flex / Acrionscript / JavaScript).

Aptana же предлагает продвинутый диалог создания проекта Adobe AIR на Javascript / HTML и набор фреймфорков, подключить которые можно на одном из шагов визарда:

А на следующем шаге — импортировать JavaScript-библиотеки:

Финальный штрих — проект сразу после создания. Это не набор пустых файлов, а работающая заготовка приложения с тремя примерами. Единственное, что не работает по умолчанию — запуск приложения, вам нужно сначала указать путь к свежему AIR SDK.

Нет, финальный штрих — это отладка этих же JavaScript-приложений на AIR прямо во встроенном отладчике Aptana IDE, в котором пользователи Eсlipse / Flex Builder найдут много уже знакомых функций.

Импорт и сборка существующего AIR-JavaScript-проекта в Aptana идет гладко, опробовал на продукте "75 примеров на JavaScript для Adobe AIR в одном проекте" от Кевина Хойта.

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


10:33:19, Flash-ripper.com
Adobe Groups и RAFPUG — в фокусе нового выпуска Adobe Edge

Вышел новый выпуск Adobe Edge за Февраль 2009 года, а в нем — очень быстрый обзор функциональности нового портала Adobe Groups и некоторых его групп.

Приятным сюрпризом стало появление Russian Adobe Flash Platform User Group уже в самом начале видео. Логотип RAFPUG в виде красной звезды облетает земной шар вместе с другими ребятами, но это лишь начало: затем один из создателей сервиса Adobe Groups Джон Кок рассказывает отдельно о RAFPUG и еще о нескольких круппах. Мои поздравление, друзья, это тру рекогнишен:

Adobe EDGE Feb 2009 Exposes Russian Adobe Flash Platform User Group

Смотрите полное видео и не забывайте регистрироваться на сайте Adobe Groups в группах: BAFPUG, RAFPUG, UAFPUG. Кстати, вы можете участвовать в любых группах одновременно, включая виртуальные типа Flex Users, а можете даже создать свою.

Регистрация в группе также облегчит подтверждение вашего участия в розыгрыше софта от Adobe, особенно если вы пишете во Flex / AIR / Mobile Cookbook.


2009-02-11

21:06:53, DL1t's blog
AIR - в массы?

Судя по всему, вскоре начнется первая на моей памяти попытка распространения AIR-приложения в Рунете в достаточно крупных масшабах, и займется этим Рамблер.


19:27:00, Flash-разработка
Как отображать шрифт без сглаживания (bitmap text) во Flex
Flex имеет некоторые ограничения в работе с внедренными шрифтами.
Если во Flash CS, мы можем просто так взять, да и указать тип рендеринга шрифтов "Bitmap text" (без антиалиасинга) и иметь полноценное отображение текста с неполной прозрачностью, наклоном и т.п., то во Flex мы можем только управлять параметрами сглаживания шрифта, или не внедрять шрифт совсем (тогда о прозрачности не может быть и речи).

Но если мне, всё-таки, нужен именно несглаженный полупрозрачный шрифт?
Проблема решается, как и многие другие во Flex, через "одно" место.
В лайфдоках, находим такую статейку: Embedding fonts from SWF files. Здесь рассказывается вообще о внедрении шрифта с использованием Flash CS. Пользуясь таким методом, можно внедрить любой шрифт, поддерживаемый Flash CS.

Однако, здесь не сказано ни слова про внедрение шрифта Bitmap text (без антиалиасинга). И вообще, в документации Flex, про это как-то совсем ничего нет. А ведь это странно и непонятно - Flex-приложения как раз направлены на отображение данных, а всем известно, что данные отображаются лучше несглаженным шрифтом. К чему тогда все эти эффекты с фэйдом и прочими трансформациями, если невнедренный шрифт их не отображает.

Нам на помощь приходит статья всеобщего друга всех флэшеров GSkinnerа Bitmap Fonts in Flex (via Flash). Правда, в ней всё несколько усложнено, но, подозреваю, что это из-за того, что писалось это для Flex 2. Ну а мы то уже на Flex 3, поэтому всё немного проще. Идея в том, что шрифт, внедренный как Bitmap text, меняет название в некую неприглядную форму, типа "Tahoma_12pt_st".

Итак, к чему мы пришли (опишу вкратце мои действия):

1. Создаем SWF-файл fonts.swf (можно любой другой). Версия Flash 9, ActionScript 3.0. Во всех статьях создается файл версии Flash 8, но, почему-то, у меня такой файл Flex не подцеплял/ - не может оттранскодить.

2. Создаем текстовые Dynamic-поля, в каждое из которых добавляем хотя-бы один символ нужного нам начертания. Соответственно, если все начертания нам нужны, то будет 4 текстовых поля: Normal, Bold, Italic, Bold Italic.

3. Устанавливаем размер шрифта, который мы будем использовать в Flex-приложении. Дело в том, что в приложении, корректно может быть отображен только один размер внедренного шрифта - тот который мы сейчас укажем. Если указать другой размер, шрифт некрасиво размажется. Я указываю 12.

4. Указываем в Embed... диапазоны, которые нам надо внедрить.
Кстати, можно пойти другим путем и, вместо текстовых полей, создать в библиотеке 4 символа-шрифта (New font...) и всё будет точно так же, за исключением того, что шрифт внедрится весь - без ограничений, что плохо для объема.

5. Компилируем и добавляем в папку проекта.

6. В CSS файле проекта (я отвел для этого специальный файл fonts.css) указываем следующий код:
/* CSS file */
@font-face {
src: url("file://./assets/fonts.swf");
fontFamily: "Tahoma_12pt_st";
fontStyle: normal;
fontWeight: normal;
}

@font-face {
src: url("file://./assets/fonts.swf");
fontFamily: "Tahoma_12pt_st";
fontStyle: normal;
fontWeight: bold;
}

@font-face {
src: url("file://./assets/fonts.swf");
fontFamily: "Tahoma_12pt_st";
fontStyle: italic;
fontWeight: normal;
}

@font-face {
src: url("file://./assets/fonts.swf");
fontFamily: "Tahoma_12pt_st";
fontStyle: italic;
fontWeight: bold;
}


7. Теперь, мы можем в любом стиле указать:
Text.Regular {
fontFamily: "Tahoma_12pt_st";
fontSize:12px;
fontAntiAliasType:normal;
}

Важно указать параметр fontAntiAliasType:normal. Если этого не сделать, шрифт в некоторых случаях будет отображаться размыто, а если это выделяемый текст - при его выделении будет твориться что-то невообразимое.
Ну и конечно, не забыть уточнить размер шрифта - иначе всё поедет.

8. Ну и собственно, применяем этот стиль к компоненту:
<mx:Text
width="100%"
styleName="Regular"
>
<mx:htmlText><![CDATA[<b>Максимальный</b> размер загружаемого файла — 3 Мб. Допустимые форматы: GIF, JPG, BMP, TIFF, PNG.]]>></mx:htmlText>
</mx:Text>

Если нам понадобится шрифт другого размера - уж не поленитесь, повторите всё со второго пункта - так уж положено.

* * *

Да, забыл добавить про то, что здорово помогает в разборках со шрифтами такой кусочек кода (взят из статьи):
var fontList:Array = Font.enumerateFonts(false);
for (var i:uint=0; i<fontList.length; i++) {
trace("font: "+fontList[i].fontName);
}

19:27:00, Flash-разработка
Как отображать шрифт без сглаживания (bitmap text) во Flex
Flex имеет некоторые ограничения в работе с внедренными шрифтами.
Если во Flash CS, мы можем просто так взять, да и указать тип рендеринга шрифтов "Bitmap text" (без антиалиасинга) и иметь полноценное отображение текста с неполной прозрачностью, наклоном и т.п., то во Flex мы можем только управлять параметрами сглаживания шрифта, или не внедрять шрифт совсем (тогда о прозрачности не может быть и речи).

Но если мне, всё-таки, нужен именно несглаженный полупрозрачный шрифт?
Проблема решается, как и многие другие во Flex, через "одно" место.
В лайфдоках, находим такую статейку: Embedding fonts from SWF files. Здесь рассказывается вообще о внедрении шрифта с использованием Flash CS. Пользуясь таким методом, можно внедрить любой шрифт, поддерживаемый Flash CS.

Однако, здесь не сказано ни слова про внедрение шрифта Bitmap text (без антиалиасинга). И вообще, в документации Flex, про это как-то совсем ничего нет. А ведь это странно и непонятно - Flex-приложения как раз направлены на отображение данных, а всем известно, что данные отображаются лучше несглаженным шрифтом. К чему тогда все эти эффекты с фэйдом и прочими трансформациями, если невнедренный шрифт их не отображает.

Нам на помощь приходит статья всеобщего друга всех флэшеров GSkinnerа Bitmap Fonts in Flex (via Flash). Правда, в ней всё несколько усложнено, но, подозреваю, что это из-за того, что писалось это для Flex 2. Ну а мы то уже на Flex 3, поэтому всё немного проще. Идея в том, что шрифт, внедренный как Bitmap text, меняет название в некую неприглядную форму, типа "Tahoma_12pt_st".

Итак, к чему мы пришли (опишу вкратце мои действия):

1. Создаем SWF-файл fonts.swf (можно любой другой). Версия Flash 9, ActionScript 3.0. Во всех статьях создается файл версии Flash 8, но, почему-то, у меня такой файл Flex не подцеплял/ - не может оттранскодить.

2. Создаем текстовые Dynamic-поля, в каждое из которых добавляем хотя-бы один символ нужного нам начертания. Соответственно, если все начертания нам нужны, то будет 4 текстовых поля: Normal, Bold, Italic, Bold Italic.

3. Устанавливаем размер шрифта, который мы будем использовать в Flex-приложении. Дело в том, что в приложении, корректно может быть отображен только один размер внедренного шрифта - тот который мы сейчас укажем. Если указать другой размер, шрифт некрасиво размажется. Я указываю 12.

4. Указываем в Embed... диапазоны, которые нам надо внедрить.
Кстати, можно пойти другим путем и, вместо текстовых полей, создать в библиотеке 4 символа-шрифта (New font...) и всё будет точно так же, за исключением того, что шрифт внедрится весь - без ограничений, что плохо для объема.

5. Компилируем и добавляем в папку проекта.

6. В CSS файле проекта (я отвел для этого специальный файл fonts.css) указываем следующий код:
/* CSS file */
@font-face {
src: url("file://./assets/fonts.swf");
fontFamily: "Tahoma_12pt_st";
fontStyle: normal;
fontWeight: normal;
}

@font-face {
src: url("file://./assets/fonts.swf");
fontFamily: "Tahoma_12pt_st";
fontStyle: normal;
fontWeight: bold;
}

@font-face {
src: url("file://./assets/fonts.swf");
fontFamily: "Tahoma_12pt_st";
fontStyle: italic;
fontWeight: normal;
}

@font-face {
src: url("file://./assets/fonts.swf");
fontFamily: "Tahoma_12pt_st";
fontStyle: italic;
fontWeight: bold;
}


7. Теперь, мы можем в любом стиле указать:
Text.Regular {
fontFamily: "Tahoma_12pt_st";
fontSize:12px;
fontAntiAliasType:normal;
}

Важно указать параметр fontAntiAliasType:normal. Если этого не сделать, шрифт в некоторых случаях будет отображаться размыто, а если это выделяемый текст - при его выделении будет твориться что-то невообразимое.
Ну и конечно, не забыть уточнить размер шрифта - иначе всё поедет.

8. Ну и собственно, применяем этот стиль к компоненту:
<mx:Text
width="100%"
styleName="Regular"
>
<mx:htmlText><![CDATA[<b>Максимальный</b> размер загружаемого файла — 3 Мб. Допустимые форматы: GIF, JPG, BMP, TIFF, PNG.]]>></mx:htmlText>
</mx:Text>

Если нам понадобится шрифт другого размера - уж не поленитесь, повторите всё со второго пункта - так уж положено.

* * *

Да, забыл добавить про то, что здорово помогает в разборках со шрифтами такой кусочек кода (взят из статьи):
var fontList:Array = Font.enumerateFonts(false);
for (var i:uint=0; i<fontList.length; i++) {
trace("font: "+fontList[i].fontName);
}



17:19:34, Flash-ripper.com
Умный мозг в 16 лет — это реально

Две цитаты скажут все, первая — последняя запись в блоге Умный Мозг (cleverbrain.ru):
«» Сегодня, друзья, мы напишем капчу на Flash. Статья посвящается обладателем сайта на хостинге без поддержки php и просто всем "интересующимся".

Вторая — об авторе:
«» Здравствуйте. Меня зовут Александр. Мне 16 лет. Представляю вашему вниманию 11 фактов о том, как я знакомился с Macromedia Flash.

  1. В 8 лет я увидел первый мультик про масяню.
  2. В 9 лет я узнал, что существует такая программа Macromedia Flash, с помощью которой был сделан мультик про масяню.
  3. В 10 лет я проявил интерес к этой программе и даже достал где-то диск с ней.
  4. В 11 лет я установил ее.
  5. В 12 я запустил ее.
  6. Читайте дальше.

15:08:33, Flash-ripper.com
Знакомьтесь: Thе Flex SDK Community Committee

Thе Flex SDK Community Committee, или Общественный Комитет по Flex SDK — это несколько человек, лучшие флекс-умы, которые ставят перед собой задачу работать над улучшением Flex SDK. Они представляют сообщество Flex, предлагая Adobe конкретные и выполнимые действия, кординируют голосование за багфиксы в Adobe JIRA и отправку патчей, продвигают использование готовых возможностей Flex SDK. Этой новостью порадовал сегодня Андрей Панас, а я хотел сказать:

Посмотрите, как работают архитекторы

Выбор людей в Flex SDK Community Committee не случаен. Именно они уже долгое время проявляют наибольшую активность на форумах Adobe, посвященных обсуждению Flex SDK. Пример из недавних событий:

После публичной онлайн-встречи архитекторов и разработчиков Flex SDK с Flex-разработчиками Adobe сделала дальнейшие шаги по итогам встречи, одним из которых стало решение выносить важные вопросы архитектуры SDK на публичное обсуждение.

Началось это с того, что 6 февраля 2009 года Мэтт Хотин опубликовал кулуарные дискуссии самих архитекторов на форуме Adobe. Мэтт сообщил, что есть т.н. Architecture Review Board (ARB) — Совет Пересмотра Архитектуры, состоящий из разработчиков Flex SDK. Между собой они обсуждают все ключевые и конфликтные моменты SDK, принимая решения о том, как именно будет развиваться или изменяться Flex. В своей первой публикации по этой теме Мэтт процитировал дискуссию Совета про наболевшему вопросу введения префикса "Fx" в названия компонентов ("FxButton"). Против введения этого префикса ноднократно высказывались различные Flex-разработчики, справедливо нарекая на то, что это усложнит понимание SDK, особенно новичками (что использовать: Button или FxButton?), автокомплит и т.д.

Затем в этой же ветке форума по вопросу высказались представители сообщества (вы тоже можете сделать это, зарегистрировавшись).

После этого Мэтт сделал еще одну публикацию по вопросу "Fx prefix revisited", и еще одну, и еще и еще. А разработчики писали свои соображения на эту тему.

Результат: официальная декларация несогласия с префиксом "Fx"

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

Вообще, указанные выше ссылки на треды адобовского форума могут принести немало знаний по вопросам проектирования и архитектуры. Воды там нет.


11:15:51, Garbage Collector
Новая книга: «Adobe AIR. Разработка приложений с помощью Ajax»

Спасибо Илье «_Smirnoff» Смирнову за хорошую новость! В продаже появилась новая книга на русском языке про разработку приложений под платформу Adobe AIR при помощи JavaScript и HTML: «Adobe AIR. Разработка приложений с помощью Ajax».

Думаю, что она станет неплохим дополнением к книге «Adobe AIR. Практическое руководство по среде для настольных приложений Flash и Flex» для разработчиков, желающих воспользоваться предоставляемой Adobe AIR возможностью создавать приложения на языке JavaScript.

Вот аннотация к этой книге на сайте Books.ru:

«Книга посвящена разработке Web-приложений в кросс-платформенной рабочей среде Adobe Integrated Runtime (AIR) для Microsoft Windows XP (SP2)/Windows Vista и Mac OS X 10.4/10.5 с использованием технологии Ajax (HTML и JavaScript). Рассматривается создание, запуск, отладка и развертывание AIR-приложений, взаимодействие приложений с сетевыми ресурсами, применение средств разработки AIR, создание окон и меню, импорт и экспорт данных, работа с файлами, папками и базами данных, использование медиакомпонентов.

Сопровождающий книгу Web-сайт www.DMCInsights.com/air содержит примеры скриптов, весь программный код, приведенный в книге, новые версии программного обеспечения и множество другой полезной информации».

Не поленюсь и еще раз процитирую пару своих абзацев вот из этой заметки:

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

Осталось еще дождаться выходящей в январе книги «Learning Flex 3. Getting up to Speed with Rich Internet Applications». Да и не помешало бы заиметь чуть больше свободного времени, чтобы успеть быстрее все это прочитать. :)


11:15:51, Garbage Collector
Новая книга: «Adobe AIR. Разработка приложений с помощью Ajax»

Спасибо Илье «_Smirnoff» Смирнову за хорошую новость! В продаже появилась новая книга на русском языке про разработку приложений под платформу Adobe AIR при помощи JavaScript и HTML: «Adobe AIR. Разработка приложений с помощью Ajax».

Думаю, что она станет неплохим дополнением к книге «Adobe AIR. Практическое руководство по среде для настольных приложений Flash и Flex» для разработчиков, желающих воспользоваться предоставляемой Adobe AIR возможностью создавать приложения на языке JavaScript.

Вот аннотация к этой книге на сайте Books.ru:

«Книга посвящена разработке Web-приложений в кросс-платформенной рабочей среде Adobe Integrated Runtime (AIR) для Microsoft Windows XP (SP2)/Windows Vista и Mac OS X 10.4/10.5 с использованием технологии Ajax (HTML и JavaScript). Рассматривается создание, запуск, отладка и развертывание AIR-приложений, взаимодействие приложений с сетевыми ресурсами, применение средств разработки AIR, создание окон и меню, импорт и экспорт данных, работа с файлами, папками и базами данных, использование медиакомпонентов.

Сопровождающий книгу Web-сайт www.DMCInsights.com/air содержит примеры скриптов, весь программный код, приведенный в книге, новые версии программного обеспечения и множество другой полезной информации».

Не поленюсь и еще раз процитирую пару своих абзацев вот из этой заметки:

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

Осталось еще дождаться выходящей в январе книги «Learning Flex 3. Getting up to Speed with Rich Internet Applications». Да и не помешало бы заиметь чуть больше свободного времени, чтобы успеть быстрее все это прочитать. :)


11:15:51, Garbage Collector
Новая книга: «Adobe AIR. Разработка приложений с помощью Ajax»

Спасибо Илье «_Smirnoff» Смирнову за хорошую новость! В продаже появилась новая книга на русском языке про разработку приложений под платформу Adobe AIR при помощи JavaScript и HTML: «Adobe AIR. Разработка приложений с помощью Ajax».

Думаю, что она станет неплохим дополнением к книге «Adobe AIR. Практическое руководство по среде для настольных приложений Flash и Flex» для разработчиков, желающих воспользоваться предоставляемой Adobe AIR возможностью создавать приложения на языке JavaScript.

Вот аннотация к этой книге на сайте Books.ru:

«Книга посвящена разработке Web-приложений в кросс-платформенной рабочей среде Adobe Integrated Runtime (AIR) для Microsoft Windows XP (SP2)/Windows Vista и Mac OS X 10.4/10.5 с использованием технологии Ajax (HTML и JavaScript). Рассматривается создание, запуск, отладка и развертывание AIR-приложений, взаимодействие приложений с сетевыми ресурсами, применение средств разработки AIR, создание окон и меню, импорт и экспорт данных, работа с файлами, папками и базами данных, использование медиакомпонентов.

Сопровождающий книгу Web-сайт www.DMCInsights.com/air содержит примеры скриптов, весь программный код, приведенный в книге, новые версии программного обеспечения и множество другой полезной информации».

Не поленюсь и еще раз процитирую пару своих абзацев вот из этой заметки:

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

Осталось еще дождаться выходящей в январе книги «Learning Flex 3. Getting up to Speed with Rich Internet Applications». Да и не помешало бы заиметь чуть больше свободного времени, чтобы успеть быстрее все это прочитать. :)


2009-02-10

14:45:31, Flash-ripper.com
Результаты розыгрыша Flex Builder 3 Professional в январе 2009 года

We got a winner9 февраля 2009 года в Харькове состоялся официальный розыгрыш лицензионной копии Flex Builder 3 Professional (занимает верхнюю строку в матрице цен).

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

Объявляем о начале розыгрыша. Список участников лотереи:
1. Эльдар Прилуцкий aka PiRREST.
Приступим к розыгрышу. Наташа, вращайте барабан! Cпасибо. Итак, победителем становится... Эльдар Прилуцкий! Выдача приза происходит незамедлительно:
6696-6966-9669-6696-6966-9669 — Flex Builder 3 Professional Serial Number
Поздравляем победителя!

Напомним, что в рамках конкурса «CookBookLook» каждый участник имел возможность создать запись во Flex Cookbook или AIR Cookbook и получить за это лотерейный билет. Минимальное количество билетов для начала лотереи составляло 5 штук, максимальное — не ограничено. Каждый полученный лотерейный билет участвовал в розыгрыше приза. Стоит ли говорить, что в этой лотерее выиграл каждый? Это самая честная лотерея, которую я видел!

Не все понятно? Развернутое объяснение

Эльдар Прилуцкий написал восемь постов для Flex Cookbook и автоматически стал победителем конкурса согласно объявленным правилам. Посты Эльдара могут принести значительную пользу прочитавшему их. Там есть настоящие флекс-находки (как для меня лично).


Поздравляем победителя и продолжаем конкурс

В марте 2009 года состоится второй розыгрыш по результатам февральского конкурса, который начинается сегодня на прежних условиях.

Куда писать рецепты?

Вот — образец рецепта и три варианта публикации:

  1. Написать рецепт во Flex Cookbook +1 билет.
  2. Написать рецепт в AIR Cookbook +1 билетик.
  3. Написать в Mobile Cookbook +1 билетишко.

Призы: пишем 5 постов — получаем копию Flex Builder Pro 3. Пишем 10 постов — получаем Adobe CS4 Master Collection.

Кстати, не забывайте, что ваши посты имеют шанс попасть в бумажную книгу, которая будет издана в O'Reilly по электронной версии.

Если напишете рецепт, присылайте ссылку в комментарии или на гулопочту rostislav.siryk. Удачи и вдохновения!


11:55:54, Flash-ripper.com
Flash Mocks — юнит-тестирование с повышенной мощностью

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

Но есть предположение, что когда появляются Flash Mocks, которых так ждал и хотел Константин Ковалев, то они могут нам очень пригодиться.

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

Update: Костя многое объясняет в комментариях к этому посту.


2009-02-09

19:48:53, Flash-ripper.com
Adobe Flexair против Microsoft Silverlight и будущее компьютеров

Air/Flex Silverlight Debate.  Bronco Student Center, Ursa Minor, Feb. 12th, 7-9pm

В четверг, 12 февраля 2009 г., состоятся дебаты Кевина Хойта (Adobe) и Сэма Стоукса (Microsoft).

В 7:00 PM (PST/GMT +8) два евангелиста будут сражаться в словесном бою за контроль над будущим компьютеров в Bronco Student Center (Ursa Minor) Калифорнийского Политехнического Университета в Помоне. Microsoft Corp. и Adobe Systems Inc. представят своим противникам доказательства собственного доминирования. Adobe (создатели Photoshop, Flash и Dreamweaver) подстрекают разработчиков на создание богатых медией настольных компьютерных приложений, работающих независимо от наличия интернета в Adobe Integrated Runtime (AIR). Microsoft предлагает разработчикам создавать богатые медией приложения, которые могут работать онлайн через технологию Silverlight.

Дебаты будут транслироваться онлайн в двух вариантах:

  1. Для пользователей каналов со средней пропускной способностью.
  2. Для пользователей с низким бандвихом (Low Bandwidth).

Кстати, сейчас там показывают весьма достойный балет (update: показывают с перерывами).


16:17:00, Flash-разработка
Прогресс-бар на любой вкус. Flex
Есть задачка, на первый взгляд, простая и, должно быть, хорошо изученная.
Сделать прогресс-бар (ProgressBar) совершенно не похожим на постепенно заполняющуюся горизонтальную полосу.

Скинирование позволяет заменить лишь изображения не залитой и залитой полос. Ну а если мне не нужна полоса?
Порыскав по интернету, пришел к выводу, что все усиленно заморачивались на проблему подмены предзагрузчика flash/flex-приложений, а вот видоизменить ProgressBar, почему-то никому не понадобилось.

Ну что ж, раз готового материала не нашлось, придется мастерить ручками.

Продолжение следует...

16:17:00, Flash-разработка
Прогресс-бар на любой вкус. Flex
Есть задачка, на первый взгляд, простая и, должно быть, хорошо изученная.
Сделать прогресс-бар (ProgressBar) совершенно не похожим на постепенно заполняющуюся горизонтальную полосу.

Скинирование позволяет заменить лишь изображения не залитой и залитой полос. Ну а если мне не нужна полоса?
Порыскав по интернету, пришел к выводу, что все усиленно заморачивались на проблему подмены предзагрузчика flash/flex-приложений, а вот видоизменить ProgressBar, почему-то никому не понадобилось.

Ну что ж, раз готового материала не нашлось, придется мастерить ручками.

Продолжение следует...



13:01:59, Flash-ripper.com
UAFPUG-0, или годовщина зачатия Ukrainian Adobe Flash User Group

Ровно год назад двадцать три человека собрались в Харькове на UAFPUG-0, чтобы обсудить будущее флэш-сообщества в Украине, решить, нужна ли нам группа (пришли к выводу, что нужна), определиться с возможными темами докладов, и, что немаловажно, в этот день произошло публичное рождение стратегической концепции двух проводков. Эта встреча непохожа на другие еще и тем, что ее доклады были прочитаны уже на афтепати, и это было хорошо. Ох, и пофлеймили же мы тогда! Присоединяюсь к поздравлениям Ромы!

Сегодня, 9 февраля — день группового зачатия UAFPUG, и ровно год с учредительной встречи в Харькове. Cтоит также упомянуть, что первое (непорочное) зачатие произошло намного раньше в уме Андрея Панаса, но этот момент теперь можно определить теперь лишь с точностью до года, и я сейчас не скажу точно, какой именно это был год.

Сохраним отчеты для истории и мирового сообщества Flash

На странице встречи UAFPUG-0 сейчас перечислены ссылки на все доклады и фотоотчеты, которые я смог найти в сети. Но я мог найти не все, так что прошу не стесняться и присылать ссылки. Они будут опубликованы не только на данной странице встречи, но и на новом официальном подсайте UAFPUG на groups.adobe.com, куда я в скором времени добавлю страницу для каждой встречи.

Спасибо всем, кто был там!

Update: сегодня также день рождения Ant-Antic, с коим двадцатипятилетием мы его и поздравляем, счастья и безбажности от всей души желаем.


10:39:12, Flash-ripper.com
RIA App Puncher — претендент на звание лучшего HTTP-сниффера. Проверим?

На горизонте появился и уже вышел в релиз новый инструмент отладки траффика, аналогичный уже известным Charles и Service Capture, но дешевле каждого из них приблизительно в 2 раза и, как пишет Роман Шупер, совсем скоро он будет обладать функционалом, недоступным в других инструментах.

Этот инструмент называется RIA AppPuncher, а разрабатывают его уже известные нам своими продуктами The Midnight Coders. Например, сервер WebOrb — их рук дело.

AppPuncher Splash Screen

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

В новости у Ромы — много скриншотов; и уже сейчас вы можете скачать RIA App Puncher.


2009-02-07

15:52:55, Garbage Collector
Как самостоятельно скомпилировать Flex 4 SDK из исходных кодов

Многие знают, что, за исключением Flex Chartings (платных компонентов для построения графиков), Adobe Flex SDK распространяется в виде открытых исходных кодов. Это означает, что вы всегда можете:

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

Доступ к исходникам Flex SDK предоставляется посредством системы контроля версий SVN, и вы всегда можете загрузить их, обратившись к trunk-у по следующему URL-адресу.

Вы спросите: «Для чего мне это нужно, если можно скачать одну из уже скомпилированных сборок Flex 4 SDK с сайта Adobe, и не придется проделывать никаких дополнительных манипуляций?». Самостоятельная сборка SDK на основе рабочей копии, полученной из системы контроля версий, обладает следующими преимуществами:

  • сюда относится весь предыдущий список возможностей;
  • на вашем компьютере всегда будет самая свежая сборка Flex 4 SDK;
  • для этого вам не нужно будет каждый раз заново скачивать весь архив со сборкой — достаточно будет только обновить измененные разработчиками исходные файлы и перекомпилировать SDK. Это особенно критично, если вдруг вы окажетесь в таком месте, где в наличии есть только медленное и нестабильное соединение с сетью;
  • вы сможете отслеживать и быть в курсе того, над какими элементами трудились в последнее время разработчики Flex 4 SDK.

Однако не нужно забывать о том, что в trunk-е может оказаться нерабочая версия SDK. В этом случае вам нужно будет откатиться на одну из предыдущих ревизий. Немного позже я объясню, как это сделать. Для начала наладим весь процесс сборки. Т.к. я все еще являюсь замшелым «виндузятником» и никак не могу пересесть на другую операционную систему, то весь описываемый процесс будет ориентирован на пользователей Windows. Думаю, пользователи других операционных систем смогут по аналогии с этой статьей настроить сборку на своих компьютерах.

Первым делом нам нужен хороший SVN-клиент, который позволит загрузить исходники из хранилища. Если у вас уже установлена подобная программа, вы можете пропустить этот шаг. Я уже достаточно давно в качестве подобного клиента под Windows использую TortoiseSVN, который встраивается в оболочку операционной системы и позволяет работать с файлами и папками в Проводнике при помощи контекстного меню, появляющегося по щелчку правой кнопкой мыши. Скачиваем и устанавливаем программу. Обратите внимание, что на странице загрузки программы есть множество языковых пакетов (в том числе и русский), позволяющих локализовать язык интерфейса программы. Далее перезагружаем ОС.

Создаем папку, в которой будет располагаться Flex 4 SDK. Я рекомендую создать ее в корне логического диска или файловой системы, а из названия папки исключить пробелы. Например, создать папку c:/flex_sdk_4. Это обусловлено тем, что в таком случае будет удобнее работать с SDK через командную строку.

Щелкаем правой клавишей мыши по папке и в контекстном меню выбираем пункт TortoiseSVNSVN Checkout… (SVN Извлечь…). В появившемся диалоговом окне указываем адрес до папки trunk Flex 4 SDK, глубину охвата при извлечении указываем Fully recursive (Полностью, рекурсивно) и выбираем пункт HEAD revision (HEAD-ревизия) для извлечения. Нажимаем кнопку OK и идем пить кофе, пока будут извлекаться исходные коды Flex SDK.

Теперь нам необходимо установить и настроить Apache Ant (страничка на Википедии) — очень полезный инструмент, позволяющий разработчикам автоматизировать различные процессы во время сборки и тестирования своих приложений. В свою очередь, разработчики Adobe Flex SDK автоматизировали процесс сборки Flex 4 SDK при помощи этого инструмента. Загружаем архив с программой и распаковываем его содержимое в папку C:\Program Files\Ant\. Теперь прописываем путь к папке bin в переменную среды Path. Для этого щелкаем правой клавишей по иконке Мой компьютер и в появившемся меню выбираем пункт Свойства. Переходим на вкладку Дополнительно и нажимаем кнопку Переменные среды. В списке Системные переменные так же через точку с запятой добавляем путь C:\Program Files\Ant\bin\ к переменной Path. Нажимаем, где нужно, кнопки Применить и OK. Перезагружаем Windows.

Компиляторы Flex SDK представляют собой программы, которые компилируются и работают в среде Java. Поэтому нам нужно установить на свой компьютер JDK. Для этого идем на сайт компании Sun и скачиваем последнюю версию Java SE Development Kit. На момент написания статьи такой версией была JDK SE 6.12. После окончания загрузки устанавливаем среду. Во время всей процедуры инсталляции можно руководствоваться действиями мастера установки по умолчанию.

Остался последний этап подготовки системы к компиляции Flex 4 SDK. Дело в том, что во время сборки Flex 4 SDK производится выполнение нескольких UNIX-овых shell-скриптов, которые, естественно, не будут работать под Windows, однако без проблем выполнятся под Mac OS и Linux. Но этот пункт тоже решаем. В корневой папке Flex 4 SDK находится файл README.txt, который содержит строку «This version of Flex is officially built in Cygwin on Windows XP Pro SP2». Т.е. разработчики в Adobe так же собирают SDK под Windows, единственной тонкостью является наличие в системе установленного Cygwin (страничка на Википедии) — эмулятора командной строки UNIX. Устанавливаем Cygwin, воспользовавшись для этой цели специальным загрузчиком и инсталлятором. Для установки указываем папку, находящуюся в корне логического диска. Путь к этой папке не должен содержать пробелов. Можно воспользоваться путем, предлагаемым по умолчанию: C:\cygwin\.

После установки запускаем консоль Cygwin, переходим в папку с исходными кодами Flex 4 SDK и запускаем сборку при помощи Apache Ant:

CODE:
  1. Yuriy@Yuriy-laptop ~
  2. $ cd /cygdrive/c/flex_sdk_4/
  3.  
  4. Yuriy@Yuriy-laptop /cygdrive/c/flex_sdk_4
  5. $ ant

Осталось дождаться окончания билда и собранная своими руками копия Flex 4 SDK готова к работе!

Теперь пару слов о том, что нужно делать, если вдруг вы обновились до нестабильной ревизии в хранилище Flex 4 SDK. Щелкаем правой клавишей по папке с локальной рабочей копией Flex 4 SDK и в контекстном меню выбираем пункт TortoiseSVNUpdate to revision… (Обновить до ревизии…), в появившемся окне переключитесь на пункт Revision (Ревизия), введите номер одной из предыдущих стабильных ревизий в текстовое поле и нажмите кнопку OK. После завершения обновления пересоберите Flex 4 SDK.

На этом статья закончена. Желаю вам удачных экспериментов с новой версией Flex SDK!


15:52:55, Garbage Collector
Как самостоятельно скомпилировать Flex 4 SDK из исходных кодов

Многие знают, что, за исключением Flex Chartings (платных компонентов для построения графиков), Adobe Flex SDK распространяется в виде открытых исходных кодов. Это означает, что вы всегда можете:

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

Доступ к исходникам Flex SDK предоставляется посредством системы контроля версий SVN, и вы всегда можете загрузить их, обратившись к trunk-у по следующему URL-адресу.

Вы спросите: «Для чего мне это нужно, если можно скачать одну из уже скомпилированных сборок Flex 4 SDK с сайта Adobe, и не придется проделывать никаких дополнительных манипуляций?». Самостоятельная сборка SDK на основе рабочей копии, полученной из системы контроля версий, обладает следующими преимуществами:

  • сюда относится весь предыдущий список возможностей;
  • на вашем компьютере всегда будет самая свежая сборка Flex 4 SDK;
  • для этого вам не нужно будет каждый раз заново скачивать весь архив со сборкой — достаточно будет только обновить измененные разработчиками исходные файлы и перекомпилировать SDK. Это особенно критично, если вдруг вы окажетесь в таком месте, где в наличии есть только медленное и нестабильное соединение с сетью;
  • вы сможете отслеживать и быть в курсе того, над какими элементами трудились в последнее время разработчики Flex 4 SDK.

Однако не нужно забывать о том, что в trunk-е может оказаться нерабочая версия SDK. В этом случае вам нужно будет откатиться на одну из предыдущих ревизий. Немного позже я объясню, как это сделать. Для начала наладим весь процесс сборки. Т.к. я все еще являюсь замшелым «виндузятником» и никак не могу пересесть на другую операционную систему, то весь описываемый процесс будет ориентирован на пользователей Windows. Думаю, пользователи других операционных систем смогут по аналогии с этой статьей настроить сборку на своих компьютерах.

Первым делом нам нужен хороший SVN-клиент, который позволит загрузить исходники из хранилища. Если у вас уже установлена подобная программа, вы можете пропустить этот шаг. Я уже достаточно давно в качестве подобного клиента под Windows использую TortoiseSVN, который встраивается в оболочку операционной системы и позволяет работать с файлами и папками в Проводнике при помощи контекстного меню, появляющегося по щелчку правой кнопкой мыши. Скачиваем и устанавливаем программу. Обратите внимание, что на странице загрузки программы есть множество языковых пакетов (в том числе и русский), позволяющих локализовать язык интерфейса программы. Далее перезагружаем ОС.

Создаем папку, в которой будет располагаться Flex 4 SDK. Я рекомендую создать ее в корне логического диска или файловой системы, а из названия папки исключить пробелы. Например, создать папку c:/flex_sdk_4. Это обусловлено тем, что в таком случае будет удобнее работать с SDK через командную строку.

Щелкаем правой клавишей мыши по папке и в контекстном меню выбираем пункт TortoiseSVNSVN Checkout… (SVN Извлечь…). В появившемся диалоговом окне указываем адрес до папки trunk Flex 4 SDK, глубину охвата при извлечении указываем Fully recursive (Полностью, рекурсивно) и выбираем пункт HEAD revision (HEAD-ревизия) для извлечения. Нажимаем кнопку OK и идем пить кофе, пока будут извлекаться исходные коды Flex SDK.

Теперь нам необходимо установить и настроить Apache Ant (страничка на Википедии) — очень полезный инструмент, позволяющий разработчикам автоматизировать различные процессы во время сборки и тестирования своих приложений. В свою очередь, разработчики Adobe Flex SDK автоматизировали процесс сборки Flex 4 SDK при помощи этого инструмента. Загружаем архив с программой и распаковываем его содержимое в папку C:\Program Files\Ant\. Теперь прописываем путь к папке bin в переменную среды Path. Для этого щелкаем правой клавишей по иконке Мой компьютер и в появившемся меню выбираем пункт Свойства. Переходим на вкладку Дополнительно и нажимаем кнопку Переменные среды. В списке Системные переменные так же через точку с запятой добавляем путь C:\Program Files\Ant\bin\ к переменной Path. Нажимаем, где нужно, кнопки Применить и OK. Перезагружаем Windows.

Компиляторы Flex SDK представляют собой программы, которые компилируются и работают в среде Java. Поэтому нам нужно установить на свой компьютер JDK. Для этого идем на сайт компании Sun и скачиваем последнюю версию Java SE Development Kit. На момент написания статьи такой версией была JDK SE 6.12. После окончания загрузки устанавливаем среду. Во время всей процедуры инсталляции можно руководствоваться действиями мастера установки по умолчанию. После завершения установки, снова открываем окно редактирования переменных среды и добавляем переменную JAVA_HOME в список системных переменных, а ее значением устанавливаем строку с путем к папке JDK: C:\Program Files\Java\jdk1.6.0_11.

Остался последний этап подготовки системы к компиляции Flex 4 SDK. Дело в том, что во время сборки Flex 4 SDK производится выполнение нескольких UNIX-овых shell-скриптов, которые, естественно, не будут работать под Windows, однако без проблем выполнятся под Mac OS и Linux. Но этот пункт тоже решаем. В корневой папке Flex 4 SDK находится файл README.txt, который содержит строку «This version of Flex is officially built in Cygwin on Windows XP Pro SP2». Т.е. разработчики в Adobe так же собирают SDK под Windows, единственной тонкостью является наличие в системе установленного Cygwin (страничка на Википедии) — эмулятора командной строки UNIX. Устанавливаем Cygwin, воспользовавшись для этой цели специальным загрузчиком и инсталлятором. Для установки указываем папку, находящуюся в корне логического диска. Путь к этой папке не должен содержать пробелов. Можно воспользоваться путем, предлагаемым по умолчанию: C:\cygwin\.

После установки запускаем консоль Cygwin, переходим в папку с исходными кодами Flex 4 SDK и запускаем сборку при помощи Apache Ant:

CODE:
  1. Yuriy@Yuriy-laptop ~
  2. $ cd /cygdrive/c/flex_sdk_4/
  3.  
  4. Yuriy@Yuriy-laptop /cygdrive/c/flex_sdk_4
  5. $ ant

Осталось дождаться окончания билда и собранная своими руками копия Flex 4 SDK готова к работе!

Теперь пару слов о том, что нужно делать, если вдруг вы обновились до нестабильной ревизии в хранилище Flex 4 SDK. Щелкаем правой клавишей по папке с локальной рабочей копией Flex 4 SDK и в контекстном меню выбираем пункт TortoiseSVNUpdate to revision… (Обновить до ревизии…), в появившемся окне переключитесь на пункт Revision (Ревизия), введите номер одной из предыдущих стабильных ревизий в текстовое поле и нажмите кнопку OK. После завершения обновления пересоберите Flex 4 SDK.

На этом статья закончена. Желаю вам удачных экспериментов с новой версией Flex SDK!


15:52:55, Garbage Collector
Как самостоятельно скомпилировать Flex 4 SDK из исходных кодов

Многие знают, что, за исключением Flex Chartings (платных компонентов для построения графиков), Adobe Flex SDK распространяется в виде открытых исходных кодов. Это означает, что вы всегда можете:

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

Доступ к исходникам Flex SDK предоставляется посредством системы контроля версий SVN, и вы всегда можете загрузить их, обратившись к trunk-у по следующему URL-адресу.

Вы спросите: «Для чего мне это нужно, если можно скачать одну из уже скомпилированных сборок Flex 4 SDK с сайта Adobe, и не придется проделывать никаких дополнительных манипуляций?». Самостоятельная сборка SDK на основе рабочей копии, полученной из системы контроля версий, обладает следующими преимуществами:

  • сюда относится весь предыдущий список возможностей;
  • на вашем компьютере всегда будет самая свежая сборка Flex 4 SDK;
  • для этого вам не нужно будет каждый раз заново скачивать весь архив со сборкой — достаточно будет только обновить измененные разработчиками исходные файлы и перекомпилировать SDK. Это особенно критично, если вдруг вы окажетесь в таком месте, где в наличии есть только медленное и нестабильное соединение с сетью;
  • вы сможете отслеживать и быть в курсе того, над какими элементами трудились в последнее время разработчики Flex 4 SDK.

Однако не нужно забывать о том, что в trunk-е может оказаться нерабочая версия SDK. В этом случае вам нужно будет откатиться на одну из предыдущих ревизий. Немного позже я объясню, как это сделать. Для начала наладим весь процесс сборки. Т.к. я все еще являюсь замшелым «виндузятником» и никак не могу пересесть на другую операционную систему, то весь описываемый процесс будет ориентирован на пользователей Windows. Думаю, пользователи других операционных систем смогут по аналогии с этой статьей настроить сборку на своих компьютерах.

Первым делом нам нужен хороший SVN-клиент, который позволит загрузить исходники из хранилища. Если у вас уже установлена подобная программа, вы можете пропустить этот шаг. Я уже достаточно давно в качестве подобного клиента под Windows использую TortoiseSVN, который встраивается в оболочку операционной системы и позволяет работать с файлами и папками в Проводнике при помощи контекстного меню, появляющегося по щелчку правой кнопкой мыши. Скачиваем и устанавливаем программу. Обратите внимание, что на странице загрузки программы есть множество языковых пакетов (в том числе и русский), позволяющих локализовать язык интерфейса программы. Далее перезагружаем ОС.

Создаем папку, в которой будет располагаться Flex 4 SDK. Я рекомендую создать ее в корне логического диска или файловой системы, а из названия папки исключить пробелы. Например, создать папку c:/flex_sdk_4. Это обусловлено тем, что в таком случае будет удобнее работать с SDK через командную строку.

Щелкаем правой клавишей мыши по папке и в контекстном меню выбираем пункт TortoiseSVNSVN Checkout… (SVN Извлечь…). В появившемся диалоговом окне указываем адрес до папки trunk Flex 4 SDK, глубину охвата при извлечении указываем Fully recursive (Полностью, рекурсивно) и выбираем пункт HEAD revision (HEAD-ревизия) для извлечения. Нажимаем кнопку OK и идем пить кофе, пока будут извлекаться исходные коды Flex SDK.

Теперь нам необходимо установить и настроить Apache Ant (страничка на Википедии) — очень полезный инструмент, позволяющий разработчикам автоматизировать различные процессы во время сборки и тестирования своих приложений. В свою очередь, разработчики Adobe Flex SDK автоматизировали процесс сборки Flex 4 SDK при помощи этого инструмента. Загружаем архив с программой и распаковываем его содержимое в папку C:\Program Files\Ant\. Теперь прописываем путь к папке bin в переменную среды Path. Для этого щелкаем правой клавишей по иконке Мой компьютер и в появившемся меню выбираем пункт Свойства. Переходим на вкладку Дополнительно и нажимаем кнопку Переменные среды. В списке Системные переменные так же через точку с запятой добавляем путь C:\Program Files\Ant\bin к переменной Path. Нажимаем, где нужно, кнопки Применить и OK. Перезагружаем Windows.

Компиляторы Flex SDK представляют собой программы, которые компилируются и работают в среде Java. Поэтому нам нужно установить на свой компьютер JDK. Для этого идем на сайт компании Sun и скачиваем последнюю версию Java SE Development Kit. На момент написания статьи такой версией была JDK SE 6.12. После окончания загрузки устанавливаем среду. Во время всей процедуры инсталляции можно руководствоваться действиями мастера установки по умолчанию. После завершения установки, снова открываем окно редактирования переменных среды и добавляем переменную JAVA_HOME в список системных переменных, а ее значением устанавливаем строку с путем к папке JDK: C:\Program Files\Java\jdk1.6.0_11.

Остался последний этап подготовки системы к компиляции Flex 4 SDK. Дело в том, что во время сборки Flex 4 SDK производится выполнение нескольких UNIX-овых shell-скриптов, которые, естественно, не будут работать под Windows, однако без проблем выполнятся под Mac OS и Linux. Но этот пункт тоже решаем. В корневой папке Flex 4 SDK находится файл README.txt, который содержит строку «This version of Flex is officially built in Cygwin on Windows XP Pro SP2». Т.е. разработчики в Adobe так же собирают SDK под Windows, единственной тонкостью является наличие в системе установленного Cygwin (страничка на Википедии) — эмулятора командной строки UNIX. Устанавливаем Cygwin, воспользовавшись для этой цели специальным загрузчиком и инсталлятором. Для установки указываем папку, находящуюся в корне логического диска. Путь к этой папке не должен содержать пробелов. Можно воспользоваться путем, предлагаемым по умолчанию: C:\cygwin\.

После установки запускаем консоль Cygwin, переходим в папку с исходными кодами Flex 4 SDK и запускаем сборку при помощи Apache Ant:

CODE:
  1. Yuriy@Yuriy-laptop ~
  2. $ cd /cygdrive/c/flex_sdk_4/
  3.  
  4. Yuriy@Yuriy-laptop /cygdrive/c/flex_sdk_4
  5. $ ant

Осталось дождаться окончания билда и собранная своими руками копия Flex 4 SDK готова к работе!

Чтобы синхронизировать свою рабочую копию Flex 4 SDK с теми изменениями, которые внесли в trunk разработчики, необходимо выбрать пункт SVN Update (Обновить) в контекстном меню папки с рабочей копией, дождаться завершения процесса обновления и пересобрать проект. Таким образом вы всегда будете иметь на своем компьютере самую свежую версию Flex 4 SDK.

Теперь пару слов о том, что нужно делать, если вдруг вы обновились до нестабильной ревизии в хранилище Flex 4 SDK. Щелкаем правой клавишей по папке с локальной рабочей копией Flex 4 SDK и в контекстном меню выбираем пункт TortoiseSVNUpdate to revision… (Обновить до ревизии…), в появившемся окне переключитесь на пункт Revision (Ревизия), введите номер одной из предыдущих стабильных ревизий в текстовое поле и нажмите кнопку OK. После завершения обновления пересоберите Flex 4 SDK.

На этом статья закончена. Желаю вам удачных экспериментов с новой версией Flex SDK!


2009-02-06

14:56:49, Flash-ripper.com
Чем пахнут флэшеры?

Update: Мр. Фластар записал и выложил для скачивания флэш-хоп в формате mp3.

Много у флешеров запахов есть,
Я их, увы, не смогу перечесть.

— так, продолжая начатую немногим ранее нашу маленькую поэтическую вакханалию, завершает свое стихотворение Лерика.

Кстати, пока каждый из нас занимался тем, чем он занимался, Валерия столько всего сделала:

Как она успевает, я даже не знаю.


12:27:00, Flash-разработка
Неэффектные эффекты. Flex
Просто хотел сделать выезжающую/убирающуюся панельку, активирующуюся при наведении мышки на некий контейнер. И сделать это чисто средствами Flex.

По началу, сделал просто появляющуюся/исчезающую панель, используя ее свойства showEffect/hideEffect. По событию наведения мыши делал visible=true, при отведении - наоборот. Эффекты:
<mx:Fade id="PanelFadeIn" alphaFrom="0" alphaTo="1" duration="400"/>
<mx:Fade id="PanelFadeOut" alphaFrom="1" alphaTo="0" duration="400" startDelay="1000"/>

Полная фигня получилась. Эффекты конфликтовали и панель появлялась и исчезала непредсказуемым образом.
Чтобы образумить эффекты, пришлось их останавливать (stop()) перед тем как переключать visible. Так более-менее заработало.

Попробовал другой способ - есть два стэйта, в которых панель находится в разных положениях. При наведении на контейнер мыши, стейт сменяется и панель перемещается в другое место, при отведении - возвращается на прежнее.
Сначала применил свойство moveEffect, в которое указывается имя эффекта <mx:Move id="PanelMotion" /> Получаю опять ерунду. В начале вроде бы всё корректно - уезжает, приезжает, но после нескольких таких движений, что-то там начинает заедать. Метод не годится.

Применяем другую тактику - используем transitions. Сразу всё встает на свои места:
<mx:transitions>
<mx:Transition fromState="Normal" toState="PanelIsShown">
<mx:Move duration="200" target="{сontrolPanel}"/>
</mx:Transition>
<mx:Transition fromState="PanelIsShown" toState="Normal">
<mx:Move duration="200" target="{сontrolPanel}"/>
</mx:Transition>
</mx:transitions>
Можно конечно обойтись одним блоком fromState="*" toState="*", но в некоторых ситуациях, панель "промигивает" в неположенных местах. Но это, конечно, зависит от специфики конкретного приложения.

В итоге, появление/убирание панели сделать средствами Flex удалось, но не так, как хотелось бы. Дело в том, что я хотел сделать небольшую паузу перед тем, как панель уберется. Сделал я следующее: второй блок transitions заменил на:
<mx:Sequence target="{сontrolPanel}">
<mx:Pause duration="1000"/>
<mx:Move duration="200"/>
</mx:Sequence>

Это вызвало две идиотские проблемы:
1. Такой способ наотрез отказывается работать, если в state меняется не непосредственно координата, а, к примеру, свойства right/left: <mx:SetStyle target="{сontrolPanel}" name="right" value="50"/> - анимация просто отсутствует.

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

* * *

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

Или я что-то не допонял, или работа с эффектами оставляет желать лучшего...
Разочарован :(

* * *

Вот пример с аналогичной панелькой:
Sliding Canvas with Flex. Исходный код тут. Работает вполне стабильно. Замечательно. И главное, у меня такие штуки проходили почему то криво... Сам виноват. Поленился сделать такую же проверку transitionHappening. А проверял свойство isPlaying, а оно как-то не правильно показывает если стоит startDelay. Другой подход с принудительной остановкой stop() тоже не проходит - надо было изначально блокировать переключение visible, как в примере. А всё лень виновата - добавлять лишние скрипты не хочется :).
Хотя, с другой стороны, управлять положением компонентов через механизм стэйтов правильнее (универсальнее).

12:27:00, Flash-разработка
Неэффектные эффекты. Flex
Просто хотел сделать выезжающую/убирающуюся панельку, активирующуюся при наведении мышки на некий контейнер. И сделать это чисто средствами Flex.

По началу, сделал просто появляющуюся/исчезающую панель, используя ее свойства showEffect/hideEffect. По событию наведения мыши делал visible=true, при отведении - наоборот. Эффекты:
<mx:Fade id="PanelFadeIn" alphaFrom="0" alphaTo="1" duration="400"/>
<mx:Fade id="PanelFadeOut" alphaFrom="1" alphaTo="0" duration="400" startDelay="1000"/>

Полная фигня получилась. Эффекты конфликтовали и панель появлялась и исчезала непредсказуемым образом.
Чтобы образумить эффекты, пришлось их останавливать (stop()) перед тем как переключать visible. Так более-менее заработало.

Попробовал другой способ - есть два стэйта, в которых панель находится в разных положениях. При наведении на контейнер мыши, стейт сменяется и панель перемещается в другое место, при отведении - возвращается на прежнее.
Сначала применил свойство moveEffect, в которое указывается имя эффекта <mx:Move id="PanelMotion" /> Получаю опять ерунду. В начале вроде бы всё корректно - уезжает, приезжает, но после нескольких таких движений, что-то там начинает заедать. Метод не годится.

Применяем другую тактику - используем transitions. Сразу всё встает на свои места:
<mx:transitions>
<mx:Transition fromState="Normal" toState="PanelIsShown">
<mx:Move duration="200" target="{сontrolPanel}"/>
</mx:Transition>
<mx:Transition fromState="PanelIsShown" toState="Normal">
<mx:Move duration="200" target="{сontrolPanel}"/>
</mx:Transition>
</mx:transitions>
Можно конечно обойтись одним блоком fromState="*" toState="*", но в некоторых ситуациях, панель "промигивает" в неположенных местах. Но это, конечно, зависит от специфики конкретного приложения.

В итоге, появление/убирание панели сделать средствами Flex удалось, но не так, как хотелось бы. Дело в том, что я хотел сделать небольшую паузу перед тем, как панель уберется. Сделал я следующее: второй блок transitions заменил на:
<mx:Sequence target="{сontrolPanel}">
<mx:Pause duration="1000"/>
<mx:Move duration="200"/>
</mx:Sequence>

Это вызвало две идиотские проблемы:
1. Такой способ наотрез отказывается работать, если в state меняется не непосредственно координата, а, к примеру, свойства right/left: <mx:SetStyle target="{сontrolPanel}" name="right" value="50"/> - анимация просто отсутствует.

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

* * *

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

Или я что-то не допонял, или работа с эффектами оставляет желать лучшего...
Разочарован :(

* * *

Вот пример с аналогичной панелькой:
Sliding Canvas with Flex. Исходный код тут. Работает вполне стабильно. Замечательно. И главное, у меня такие штуки проходили почему то криво... Сам виноват. Поленился сделать такую же проверку transitionHappening. А проверял свойство isPlaying, а оно как-то не правильно показывает если стоит startDelay. Другой подход с принудительной остановкой stop() тоже не проходит - надо было изначально блокировать переключение visible, как в примере. А всё лень виновата - добавлять лишние скрипты не хочется :).
Хотя, с другой стороны, управлять положением компонентов через механизм стэйтов правильнее (универсальнее).

* * *

В итоге, всё получилось с применением showEffect/hideEffect. Получилось вполне стабильно и без неприятных побочных эффектов:


public function hideControlPanel():void {
panelShowEffect.stop();
panelHideEffect.stop();
if (controlPanel.visible)
controlPanel.visible=false;
}

public function showControlPanel():void {
if (!this.enabled) return;
panelShowEffect.stop();
panelHideEffect.stop();
if (!controlPanel.visible)
controlPanel.visible=true;
}

. . .

<mx:canvas width="{controlPanel.width}" height="100%" clipcontent="true" rollover="showControlPanel()" rollout="hideControlPanel()" creationcomplete="hideControlPanel()" backgroundcolor="#FFFFFF" backgroundalpha="0">

. . .

<mx:Move id="panelShowEffect" xTo="0" duration="200"/>
<mx:Move id="panelHideEffect" startDelay="1000" duration="200" xTo="{-controlPanel.width}"/>

. . .

<mx:VBox
id="controlPanel"
height="100%"
showEffect="{panelShowEffect}"
hideEffect="{panelHideEffect}"
x="{-controlPanel.width}"
visible="false"
>

. . . Содержимое панели . . .

</mx:VBox>

. . .

</mx:Canvas>



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



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