Flex и RIA блоги
2009-02-16 |
"Чтобы шарик не лопнул, лучше его немного сдуть , и слишком сильно сдувать его не надо." — так мог подумать я вчера вечером, когда принимал решение о синхронном отказе от курения. Но подумал только сегодня утром когда на собрании узнал, что в нашей компании происходит синхронное снижение зарплат на пять процентов. Весьма удачное совпадение! Устойчивое повышение тонуса, выпрямление позвоночника на два с половиной градуса, бодрость в уме и теле незамедлительно овладели моим организмом. А коснулось ли вас дыхание Кризиса Животворящего? Если да, то как именно оно коснулось вас, что вы при этом подумали, почувстовали и запланировали? Ощутима ли бодрость в членах и сочленениях? Как вообще дела, ребята? |
2009-02-13 |
Java -> Flash Да, судя по всему данная связка становится реальной. Причем не просто так, а с возможностями отладки. Таким образом, flash понемногу следует путем .NET - теперь в том или ином виде байткод, воспринимаемый flash player-ом, можно получить из собственно ActionScript, C++ (Alchemy), Java, haXe. Кроме того, в случае развития Alchemy возможна поддержка и других языков. Межязыковое и меж-vm-ное безумие нарастает:) Качать и щупать - тут. |
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 каждый раз, когда пишете в кукбук. |
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 каждый раз, когда пишете в кукбук. |
Релиз Intellij IDEA 8.1 Вышла новая версия самой интеллектуальной среды разработки для Java, Groovy, Flex и Ajax — Intellij IDEA 8.1. Вот что пишет про нее в рассылке ruFlex Евгений Потапенко:
|
Релиз Intellij IDEA 8.1 Вышла новая версия самой интеллектуальной среды разработки для Java, Groovy, Flex и Ajax — Intellij IDEA 8.1. Вот что пишет про нее в рассылке ruFlex Евгений Потапенко:
|
Релиз Intellij IDEA 8.1 Вышла новая версия самой интеллектуальной среды разработки для Java, Groovy, Flex и Ajax — Intellij IDEA 8.1. Вот что пишет про нее в рассылке ruFlex Евгений Потапенко:
|
2009-02-12 |
Приложения Adobe AIR на JavaScript — не нужно делать это во Flex Builder Многие люди пытаются приспособить Flex Bulder для создания Javascript-AIR-приложений, и некоторым это даже удается, но это не самый легкий путь (поправьте, если я неправ). В то же время, существует два вполне рабочих решения. Adobe AIR в DreamweaverCкачав и установив расширение для создания приложений 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 в одном проекте" от Кевина Хойта. В целом — очень достойный уровень даже для платного решения, а это — доступно бесплатно. Даже захотелось Аптану купить, хоть это и необязательно. |
Adobe Groups и RAFPUG — в фокусе нового выпуска Adobe Edge Вышел новый выпуск Adobe Edge за Февраль 2009 года, а в нем — очень быстрый обзор функциональности нового портала Adobe Groups и некоторых его групп. Приятным сюрпризом стало появление Russian Adobe Flash Platform User Group уже в самом начале видео. Логотип RAFPUG в виде красной звезды облетает земной шар вместе с другими ребятами, но это лишь начало: затем один из создателей сервиса Adobe Groups Джон Кок рассказывает отдельно о RAFPUG и еще о нескольких круппах. Мои поздравление, друзья, это тру рекогнишен: Смотрите полное видео и не забывайте регистрироваться на сайте Adobe Groups в группах: BAFPUG, RAFPUG, UAFPUG. Кстати, вы можете участвовать в любых группах одновременно, включая виртуальные типа Flex Users, а можете даже создать свою. Регистрация в группе также облегчит подтверждение вашего участия в розыгрыше софта от Adobe, особенно если вы пишете во Flex / AIR / Mobile Cookbook. |
2009-02-11 |
AIR - в массы? Судя по всему, вскоре начнется первая на моей памяти попытка распространения AIR-приложения в Рунете в достаточно крупных масшабах, и займется этим Рамблер. |
Как отображать шрифт без сглаживания (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);
|
Как отображать шрифт без сглаживания (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);
|
Умный мозг в 16 лет — это реально Две цитаты скажут все, первая — последняя запись в блоге Умный Мозг (cleverbrain.ru): Вторая — об авторе:
|
Знакомьтесь: 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, общий смысл которой сводится к тому, что префикса в названиях компонентов не должно быть, но есть моменты — рекомендую ознакомиться. Вообще, указанные выше ссылки на треды адобовского форума могут принести немало знаний по вопросам проектирования и архитектуры. Воды там нет. |
Новая книга: «Adobe AIR. Разработка приложений с помощью Ajax» Спасибо Илье «_Smirnoff» Смирнову за хорошую новость! В продаже появилась новая книга на русском языке про разработку приложений под платформу Adobe AIR при помощи JavaScript и HTML: «Adobe AIR. Разработка приложений с помощью Ajax». Думаю, что она станет неплохим дополнением к книге «Adobe AIR. Практическое руководство по среде для настольных приложений Flash и Flex» для разработчиков, желающих воспользоваться предоставляемой Adobe AIR возможностью создавать приложения на языке JavaScript. Вот аннотация к этой книге на сайте Books.ru:
Не поленюсь и еще раз процитирую пару своих абзацев вот из этой заметки:
|
Новая книга: «Adobe AIR. Разработка приложений с помощью Ajax» Спасибо Илье «_Smirnoff» Смирнову за хорошую новость! В продаже появилась новая книга на русском языке про разработку приложений под платформу Adobe AIR при помощи JavaScript и HTML: «Adobe AIR. Разработка приложений с помощью Ajax». Думаю, что она станет неплохим дополнением к книге «Adobe AIR. Практическое руководство по среде для настольных приложений Flash и Flex» для разработчиков, желающих воспользоваться предоставляемой Adobe AIR возможностью создавать приложения на языке JavaScript. Вот аннотация к этой книге на сайте Books.ru:
Не поленюсь и еще раз процитирую пару своих абзацев вот из этой заметки:
|
Новая книга: «Adobe AIR. Разработка приложений с помощью Ajax» Спасибо Илье «_Smirnoff» Смирнову за хорошую новость! В продаже появилась новая книга на русском языке про разработку приложений под платформу Adobe AIR при помощи JavaScript и HTML: «Adobe AIR. Разработка приложений с помощью Ajax». Думаю, что она станет неплохим дополнением к книге «Adobe AIR. Практическое руководство по среде для настольных приложений Flash и Flex» для разработчиков, желающих воспользоваться предоставляемой Adobe AIR возможностью создавать приложения на языке JavaScript. Вот аннотация к этой книге на сайте Books.ru:
Не поленюсь и еще раз процитирую пару своих абзацев вот из этой заметки:
|
2009-02-10 |
Результаты розыгрыша Flex Builder 3 Professional в январе 2009 года
Ни один из участников не пропустил это событие. Розыгрыш проводился с помощью программы случайных чисел, процесс был записан в виде стенограммы: Объявляем о начале розыгрыша. Список участников лотереи: Напомним, что в рамках конкурса «CookBookLook» каждый участник имел возможность создать запись во Flex Cookbook или AIR Cookbook и получить за это лотерейный билет. Минимальное количество билетов для начала лотереи составляло 5 штук, максимальное — не ограничено. Каждый полученный лотерейный билет участвовал в розыгрыше приза. Стоит ли говорить, что в этой лотерее выиграл каждый? Это самая честная лотерея, которую я видел! Не все понятно? Развернутое объяснениеЭльдар Прилуцкий написал восемь постов для Flex Cookbook и автоматически стал победителем конкурса согласно объявленным правилам. Посты Эльдара могут принести значительную пользу прочитавшему их. Там есть настоящие флекс-находки (как для меня лично). Поздравляем победителя и продолжаем конкурсВ марте 2009 года состоится второй розыгрыш по результатам февральского конкурса, который начинается сегодня на прежних условиях. Куда писать рецепты?Вот — образец рецепта и три варианта публикации:
Призы: пишем 5 постов — получаем копию Flex Builder Pro 3. Пишем 10 постов — получаем Adobe CS4 Master Collection. Кстати, не забывайте, что ваши посты имеют шанс попасть в бумажную книгу, которая будет издана в O'Reilly по электронной версии. Если напишете рецепт, присылайте ссылку в комментарии или на гулопочту rostislav.siryk. Удачи и вдохновения! |
Flash Mocks — юнит-тестирование с повышенной мощностью Честно признаться, я сам только что скачал проект Asmock и еще не разобрался, с какой стороны его лучше расхваливать, кроме той, что он упрощает создание мощных юнит-тестов. Поэтому пока не стану. Но есть предположение, что когда появляются Flash Mocks, которых так ждал и хотел Константин Ковалев, то они могут нам очень пригодиться. Поэтому я публикую ссылку поскорее, чтобы своим личным разбирательством не замедлять доступ тем, кому он может понадобиться. Update: Костя многое объясняет в комментариях к этому посту. |
2009-02-09 |
Adobe Flexair против Microsoft Silverlight и будущее компьютеров В четверг, 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. Дебаты будут транслироваться онлайн в двух вариантах:
Кстати, сейчас там показывают весьма достойный балет (update: показывают с перерывами). |
Прогресс-бар на любой вкус. Flex Есть задачка, на первый взгляд, простая и, должно быть, хорошо изученная. Сделать прогресс-бар (ProgressBar) совершенно не похожим на постепенно заполняющуюся горизонтальную полосу. Скинирование позволяет заменить лишь изображения не залитой и залитой полос. Ну а если мне не нужна полоса? Порыскав по интернету, пришел к выводу, что все усиленно заморачивались на проблему подмены предзагрузчика flash/flex-приложений, а вот видоизменить ProgressBar, почему-то никому не понадобилось. Ну что ж, раз готового материала не нашлось, придется мастерить ручками. Продолжение следует... |
Прогресс-бар на любой вкус. Flex Есть задачка, на первый взгляд, простая и, должно быть, хорошо изученная. Сделать прогресс-бар (ProgressBar) совершенно не похожим на постепенно заполняющуюся горизонтальную полосу. Скинирование позволяет заменить лишь изображения не залитой и залитой полос. Ну а если мне не нужна полоса? Порыскав по интернету, пришел к выводу, что все усиленно заморачивались на проблему подмены предзагрузчика flash/flex-приложений, а вот видоизменить ProgressBar, почему-то никому не понадобилось. Ну что ж, раз готового материала не нашлось, придется мастерить ручками. Продолжение следует... |
UAFPUG-0, или годовщина зачатия Ukrainian Adobe Flash User Group Ровно год назад двадцать три человека собрались в Харькове на UAFPUG-0, чтобы обсудить будущее флэш-сообщества в Украине, решить, нужна ли нам группа (пришли к выводу, что нужна), определиться с возможными темами докладов, и, что немаловажно, в этот день произошло публичное рождение стратегической концепции двух проводков. Эта встреча непохожа на другие еще и тем, что ее доклады были прочитаны уже на афтепати, и это было хорошо. Ох, и пофлеймили же мы тогда! Присоединяюсь к поздравлениям Ромы! Сегодня, 9 февраля — день группового зачатия UAFPUG, и ровно год с учредительной встречи в Харькове. Cтоит также упомянуть, что первое (непорочное) зачатие произошло намного раньше в уме Андрея Панаса, но этот момент теперь можно определить теперь лишь с точностью до года, и я сейчас не скажу точно, какой именно это был год. Сохраним отчеты для истории и мирового сообщества FlashНа странице встречи UAFPUG-0 сейчас перечислены ссылки на все доклады и фотоотчеты, которые я смог найти в сети. Но я мог найти не все, так что прошу не стесняться и присылать ссылки. Они будут опубликованы не только на данной странице встречи, но и на новом официальном подсайте UAFPUG на groups.adobe.com, куда я в скором времени добавлю страницу для каждой встречи. Спасибо всем, кто был там! Update: сегодня также день рождения Ant-Antic, с коим двадцатипятилетием мы его и поздравляем, счастья и безбажности от всей души желаем. |
RIA App Puncher — претендент на звание лучшего HTTP-сниффера. Проверим? На горизонте появился и уже вышел в релиз новый инструмент отладки траффика, аналогичный уже известным Charles и Service Capture, но дешевле каждого из них приблизительно в 2 раза и, как пишет Роман Шупер, совсем скоро он будет обладать функционалом, недоступным в других инструментах. Этот инструмент называется RIA AppPuncher, а разрабатывают его уже известные нам своими продуктами The Midnight Coders. Например, сервер WebOrb — их рук дело. Сейчас происходит активный набор тестеров этого приложения, которые будут добавлять описания багов и своих предложений вот в эту ветку форума. За помощь в тестировании обещают отблагодарить лицензиями. В новости у Ромы — много скриншотов; и уже сейчас вы можете скачать RIA App Puncher. |
2009-02-07 |
Как самостоятельно скомпилировать Flex 4 SDK из исходных кодов Многие знают, что, за исключением Flex Chartings (платных компонентов для построения графиков), Adobe Flex SDK распространяется в виде открытых исходных кодов. Это означает, что вы всегда можете:
Доступ к исходникам Flex SDK предоставляется посредством системы контроля версий SVN, и вы всегда можете загрузить их, обратившись к trunk-у по следующему URL-адресу. Вы спросите: «Для чего мне это нужно, если можно скачать одну из уже скомпилированных сборок Flex 4 SDK с сайта Adobe, и не придется проделывать никаких дополнительных манипуляций?». Самостоятельная сборка SDK на основе рабочей копии, полученной из системы контроля версий, обладает следующими преимуществами:
Однако не нужно забывать о том, что в trunk-е может оказаться нерабочая версия SDK. В этом случае вам нужно будет откатиться на одну из предыдущих ревизий. Немного позже я объясню, как это сделать. Для начала наладим весь процесс сборки. Т.к. я все еще являюсь замшелым «виндузятником» и никак не могу пересесть на другую операционную систему, то весь описываемый процесс будет ориентирован на пользователей Windows. Думаю, пользователи других операционных систем смогут по аналогии с этой статьей настроить сборку на своих компьютерах. Первым делом нам нужен хороший SVN-клиент, который позволит загрузить исходники из хранилища. Если у вас уже установлена подобная программа, вы можете пропустить этот шаг. Я уже достаточно давно в качестве подобного клиента под Windows использую TortoiseSVN, который встраивается в оболочку операционной системы и позволяет работать с файлами и папками в Проводнике при помощи контекстного меню, появляющегося по щелчку правой кнопкой мыши. Скачиваем и устанавливаем программу. Обратите внимание, что на странице загрузки программы есть множество языковых пакетов (в том числе и русский), позволяющих локализовать язык интерфейса программы. Далее перезагружаем ОС. Создаем папку, в которой будет располагаться Flex 4 SDK. Я рекомендую создать ее в корне логического диска или файловой системы, а из названия папки исключить пробелы. Например, создать папку Щелкаем правой клавишей мыши по папке и в контекстном меню выбираем пункт TortoiseSVN → SVN Checkout… (SVN Извлечь…). В появившемся диалоговом окне указываем адрес до папки trunk Flex 4 SDK, глубину охвата при извлечении указываем Fully recursive (Полностью, рекурсивно) и выбираем пункт HEAD revision (HEAD-ревизия) для извлечения. Нажимаем кнопку OK и идем пить кофе, пока будут извлекаться исходные коды Flex SDK. Теперь нам необходимо установить и настроить Apache Ant (страничка на Википедии) — очень полезный инструмент, позволяющий разработчикам автоматизировать различные процессы во время сборки и тестирования своих приложений. В свою очередь, разработчики Adobe Flex SDK автоматизировали процесс сборки Flex 4 SDK при помощи этого инструмента. Загружаем архив с программой и распаковываем его содержимое в папку Компиляторы 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 находится файл После установки запускаем консоль Cygwin, переходим в папку с исходными кодами Flex 4 SDK и запускаем сборку при помощи Apache Ant: CODE:
Осталось дождаться окончания билда и собранная своими руками копия Flex 4 SDK готова к работе! Теперь пару слов о том, что нужно делать, если вдруг вы обновились до нестабильной ревизии в хранилище Flex 4 SDK. Щелкаем правой клавишей по папке с локальной рабочей копией Flex 4 SDK и в контекстном меню выбираем пункт TortoiseSVN → Update to revision… (Обновить до ревизии…), в появившемся окне переключитесь на пункт Revision (Ревизия), введите номер одной из предыдущих стабильных ревизий в текстовое поле и нажмите кнопку OK. После завершения обновления пересоберите Flex 4 SDK. На этом статья закончена. Желаю вам удачных экспериментов с новой версией Flex SDK! |
Как самостоятельно скомпилировать Flex 4 SDK из исходных кодов Многие знают, что, за исключением Flex Chartings (платных компонентов для построения графиков), Adobe Flex SDK распространяется в виде открытых исходных кодов. Это означает, что вы всегда можете:
Доступ к исходникам Flex SDK предоставляется посредством системы контроля версий SVN, и вы всегда можете загрузить их, обратившись к trunk-у по следующему URL-адресу. Вы спросите: «Для чего мне это нужно, если можно скачать одну из уже скомпилированных сборок Flex 4 SDK с сайта Adobe, и не придется проделывать никаких дополнительных манипуляций?». Самостоятельная сборка SDK на основе рабочей копии, полученной из системы контроля версий, обладает следующими преимуществами:
Однако не нужно забывать о том, что в trunk-е может оказаться нерабочая версия SDK. В этом случае вам нужно будет откатиться на одну из предыдущих ревизий. Немного позже я объясню, как это сделать. Для начала наладим весь процесс сборки. Т.к. я все еще являюсь замшелым «виндузятником» и никак не могу пересесть на другую операционную систему, то весь описываемый процесс будет ориентирован на пользователей Windows. Думаю, пользователи других операционных систем смогут по аналогии с этой статьей настроить сборку на своих компьютерах. Первым делом нам нужен хороший SVN-клиент, который позволит загрузить исходники из хранилища. Если у вас уже установлена подобная программа, вы можете пропустить этот шаг. Я уже достаточно давно в качестве подобного клиента под Windows использую TortoiseSVN, который встраивается в оболочку операционной системы и позволяет работать с файлами и папками в Проводнике при помощи контекстного меню, появляющегося по щелчку правой кнопкой мыши. Скачиваем и устанавливаем программу. Обратите внимание, что на странице загрузки программы есть множество языковых пакетов (в том числе и русский), позволяющих локализовать язык интерфейса программы. Далее перезагружаем ОС. Создаем папку, в которой будет располагаться Flex 4 SDK. Я рекомендую создать ее в корне логического диска или файловой системы, а из названия папки исключить пробелы. Например, создать папку Щелкаем правой клавишей мыши по папке и в контекстном меню выбираем пункт TortoiseSVN → SVN Checkout… (SVN Извлечь…). В появившемся диалоговом окне указываем адрес до папки trunk Flex 4 SDK, глубину охвата при извлечении указываем Fully recursive (Полностью, рекурсивно) и выбираем пункт HEAD revision (HEAD-ревизия) для извлечения. Нажимаем кнопку OK и идем пить кофе, пока будут извлекаться исходные коды Flex SDK. Теперь нам необходимо установить и настроить Apache Ant (страничка на Википедии) — очень полезный инструмент, позволяющий разработчикам автоматизировать различные процессы во время сборки и тестирования своих приложений. В свою очередь, разработчики Adobe Flex SDK автоматизировали процесс сборки Flex 4 SDK при помощи этого инструмента. Загружаем архив с программой и распаковываем его содержимое в папку Компиляторы 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 находится файл После установки запускаем консоль Cygwin, переходим в папку с исходными кодами Flex 4 SDK и запускаем сборку при помощи Apache Ant: CODE:
Осталось дождаться окончания билда и собранная своими руками копия Flex 4 SDK готова к работе! Теперь пару слов о том, что нужно делать, если вдруг вы обновились до нестабильной ревизии в хранилище Flex 4 SDK. Щелкаем правой клавишей по папке с локальной рабочей копией Flex 4 SDK и в контекстном меню выбираем пункт TortoiseSVN → Update to revision… (Обновить до ревизии…), в появившемся окне переключитесь на пункт Revision (Ревизия), введите номер одной из предыдущих стабильных ревизий в текстовое поле и нажмите кнопку OK. После завершения обновления пересоберите Flex 4 SDK. На этом статья закончена. Желаю вам удачных экспериментов с новой версией Flex SDK! |
Как самостоятельно скомпилировать Flex 4 SDK из исходных кодов Многие знают, что, за исключением Flex Chartings (платных компонентов для построения графиков), Adobe Flex SDK распространяется в виде открытых исходных кодов. Это означает, что вы всегда можете:
Доступ к исходникам Flex SDK предоставляется посредством системы контроля версий SVN, и вы всегда можете загрузить их, обратившись к trunk-у по следующему URL-адресу. Вы спросите: «Для чего мне это нужно, если можно скачать одну из уже скомпилированных сборок Flex 4 SDK с сайта Adobe, и не придется проделывать никаких дополнительных манипуляций?». Самостоятельная сборка SDK на основе рабочей копии, полученной из системы контроля версий, обладает следующими преимуществами:
Однако не нужно забывать о том, что в trunk-е может оказаться нерабочая версия SDK. В этом случае вам нужно будет откатиться на одну из предыдущих ревизий. Немного позже я объясню, как это сделать. Для начала наладим весь процесс сборки. Т.к. я все еще являюсь замшелым «виндузятником» и никак не могу пересесть на другую операционную систему, то весь описываемый процесс будет ориентирован на пользователей Windows. Думаю, пользователи других операционных систем смогут по аналогии с этой статьей настроить сборку на своих компьютерах. Первым делом нам нужен хороший SVN-клиент, который позволит загрузить исходники из хранилища. Если у вас уже установлена подобная программа, вы можете пропустить этот шаг. Я уже достаточно давно в качестве подобного клиента под Windows использую TortoiseSVN, который встраивается в оболочку операционной системы и позволяет работать с файлами и папками в Проводнике при помощи контекстного меню, появляющегося по щелчку правой кнопкой мыши. Скачиваем и устанавливаем программу. Обратите внимание, что на странице загрузки программы есть множество языковых пакетов (в том числе и русский), позволяющих локализовать язык интерфейса программы. Далее перезагружаем ОС. Создаем папку, в которой будет располагаться Flex 4 SDK. Я рекомендую создать ее в корне логического диска или файловой системы, а из названия папки исключить пробелы. Например, создать папку Щелкаем правой клавишей мыши по папке и в контекстном меню выбираем пункт TortoiseSVN → SVN Checkout… (SVN Извлечь…). В появившемся диалоговом окне указываем адрес до папки trunk Flex 4 SDK, глубину охвата при извлечении указываем Fully recursive (Полностью, рекурсивно) и выбираем пункт HEAD revision (HEAD-ревизия) для извлечения. Нажимаем кнопку OK и идем пить кофе, пока будут извлекаться исходные коды Flex SDK. Теперь нам необходимо установить и настроить Apache Ant (страничка на Википедии) — очень полезный инструмент, позволяющий разработчикам автоматизировать различные процессы во время сборки и тестирования своих приложений. В свою очередь, разработчики Adobe Flex SDK автоматизировали процесс сборки Flex 4 SDK при помощи этого инструмента. Загружаем архив с программой и распаковываем его содержимое в папку Компиляторы 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 находится файл После установки запускаем консоль Cygwin, переходим в папку с исходными кодами Flex 4 SDK и запускаем сборку при помощи Apache Ant: CODE:
Осталось дождаться окончания билда и собранная своими руками копия Flex 4 SDK готова к работе! Чтобы синхронизировать свою рабочую копию Flex 4 SDK с теми изменениями, которые внесли в trunk разработчики, необходимо выбрать пункт SVN Update (Обновить) в контекстном меню папки с рабочей копией, дождаться завершения процесса обновления и пересобрать проект. Таким образом вы всегда будете иметь на своем компьютере самую свежую версию Flex 4 SDK. Теперь пару слов о том, что нужно делать, если вдруг вы обновились до нестабильной ревизии в хранилище Flex 4 SDK. Щелкаем правой клавишей по папке с локальной рабочей копией Flex 4 SDK и в контекстном меню выбираем пункт TortoiseSVN → Update to revision… (Обновить до ревизии…), в появившемся окне переключитесь на пункт Revision (Ревизия), введите номер одной из предыдущих стабильных ревизий в текстовое поле и нажмите кнопку OK. После завершения обновления пересоберите Flex 4 SDK. На этом статья закончена. Желаю вам удачных экспериментов с новой версией Flex SDK! |
2009-02-06 |
Чем пахнут флэшеры? Update: Мр. Фластар записал и выложил для скачивания флэш-хоп в формате mp3. Много у флешеров запахов есть, — так, продолжая начатую немногим ранее нашу маленькую поэтическую вакханалию, завершает свое стихотворение Лерика. Кстати, пока каждый из нас занимался тем, чем он занимался, Валерия столько всего сделала:
Как она успевает, я даже не знаю. |
Неэффектные эффекты. Flex Просто хотел сделать выезжающую/убирающуюся панельку, активирующуюся при наведении мышки на некий контейнер. И сделать это чисто средствами Flex. По началу, сделал просто появляющуюся/исчезающую панель, используя ее свойства showEffect/hideEffect. По событию наведения мыши делал visible=true, при отведении - наоборот. Эффекты: <mx:Fade id="PanelFadeIn" alphaFrom="0" alphaTo="1" duration="400"/> Полная фигня получилась. Эффекты конфликтовали и панель появлялась и исчезала непредсказуемым образом. Чтобы образумить эффекты, пришлось их останавливать (stop()) перед тем как переключать visible. Так более-менее заработало. Попробовал другой способ - есть два стэйта, в которых панель находится в разных положениях. При наведении на контейнер мыши, стейт сменяется и панель перемещается в другое место, при отведении - возвращается на прежнее. Сначала применил свойство moveEffect, в которое указывается имя эффекта <mx:Move id="PanelMotion" /> Получаю опять ерунду. В начале вроде бы всё корректно - уезжает, приезжает, но после нескольких таких движений, что-то там начинает заедать. Метод не годится. Применяем другую тактику - используем transitions. Сразу всё встает на свои места: <mx:transitions> Можно конечно обойтись одним блоком fromState="*" toState="*", но в некоторых ситуациях, панель "промигивает" в неположенных местах. Но это, конечно, зависит от специфики конкретного приложения.В итоге, появление/убирание панели сделать средствами Flex удалось, но не так, как хотелось бы. Дело в том, что я хотел сделать небольшую паузу перед тем, как панель уберется. Сделал я следующее: второй блок transitions заменил на: <mx:Sequence target="{сontrolPanel}"> Это вызвало две идиотские проблемы: 1. Такой способ наотрез отказывается работать, если в state меняется не непосредственно координата, а, к примеру, свойства right/left: <mx:SetStyle target="{сontrolPanel}" name="right" value="50"/> - анимация просто отсутствует. 2. Панель полностью исчезает и снова появляется, если быстро убрать мышь и опять навести ее на контейнер. А по-хорошему, панель должна оставаться на месте. * * * В общем, решая совсем простую задачу, я столкнулся с кучей дурацких проблем, которые, возможно, решаемы, но скорее всего через шаманские средства - наследование классов эффектов и модификация методов этих классов под свои нужды. Или я что-то не допонял, или работа с эффектами оставляет желать лучшего... Разочарован :( * * * Вот пример с аналогичной панелькой: Sliding Canvas with Flex. Исходный код тут. Работает вполне стабильно. Замечательно. И главное, у меня такие штуки проходили почему то криво... Сам виноват. Поленился сделать такую же проверку transitionHappening. А проверял свойство isPlaying, а оно как-то не правильно показывает если стоит startDelay. Другой подход с принудительной остановкой stop() тоже не проходит - надо было изначально блокировать переключение visible, как в примере. А всё лень виновата - добавлять лишние скрипты не хочется :). Хотя, с другой стороны, управлять положением компонентов через механизм стэйтов правильнее (универсальнее). |
Неэффектные эффекты. Flex Просто хотел сделать выезжающую/убирающуюся панельку, активирующуюся при наведении мышки на некий контейнер. И сделать это чисто средствами Flex. По началу, сделал просто появляющуюся/исчезающую панель, используя ее свойства showEffect/hideEffect. По событию наведения мыши делал visible=true, при отведении - наоборот. Эффекты: <mx:Fade id="PanelFadeIn" alphaFrom="0" alphaTo="1" duration="400"/> Полная фигня получилась. Эффекты конфликтовали и панель появлялась и исчезала непредсказуемым образом. Чтобы образумить эффекты, пришлось их останавливать (stop()) перед тем как переключать visible. Так более-менее заработало. Попробовал другой способ - есть два стэйта, в которых панель находится в разных положениях. При наведении на контейнер мыши, стейт сменяется и панель перемещается в другое место, при отведении - возвращается на прежнее. Сначала применил свойство moveEffect, в которое указывается имя эффекта <mx:Move id="PanelMotion" /> Получаю опять ерунду. В начале вроде бы всё корректно - уезжает, приезжает, но после нескольких таких движений, что-то там начинает заедать. Метод не годится. Применяем другую тактику - используем transitions. Сразу всё встает на свои места: <mx:transitions> Можно конечно обойтись одним блоком fromState="*" toState="*", но в некоторых ситуациях, панель "промигивает" в неположенных местах. Но это, конечно, зависит от специфики конкретного приложения.В итоге, появление/убирание панели сделать средствами Flex удалось, но не так, как хотелось бы. Дело в том, что я хотел сделать небольшую паузу перед тем, как панель уберется. Сделал я следующее: второй блок transitions заменил на: <mx:Sequence target="{сontrolPanel}"> Это вызвало две идиотские проблемы: 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, примененного к компоненту, вложенному в выезжающую панель, из-за его нестабильной работы. |