Flex и RIA блоги



2008-08-26

12:23:33, Flash-ripper.com
Марк Андерс о насущном: Thermo, Flash Player 10, Degrafa и т.д.

Первый день конференции 360|Flex в Сан-Жозе начался с рассказа Марка Андерса из Adobe обо всем, что касается будущего и Flash. Вот этот рассказ:

Скажите, можете ли вы просмотреть видите это видео и где вы физически находитесь? Я его увидеть не могу. Есть подозрение на ограничения по гео-локациям.

Кстати, эти ограничения не распространяются на просмотр через Adobe Media Player.


2008-08-22

22:26:43, Flash-ripper.com
15 свежих видео с конференции 360|Flex в Сан Жозе, и будет больше

Если вам интересно, что курят самые продвинутые флекс-разработчики, то удовлетворите интерес:

  1. Установите AMP, он же Adobe Media Player (прямая ссылка: adobe_media_player.air).
  2. Выберите меню "My Favorites", вверху.
  3. Вы в разделе любимого. Кликните "Add RSS Feed", на сей раз внизу.
  4. Вставьте адрес RSS-фида для видео: http://sessions.onflex.org/1733261879.xml
Так вы подпишетесь на видео-фид для AMP с самыми важными сессиями 360 Flex. Теперь они видны в разделе "My Favorites" — все 15 HD-видео в разрешении 1024x768.

Сейчас идут работы по добавлению к фиду 360|Flex поиска.

Так сказал Ted :)


14:24:45, Flash-ripper.com
Arthropod — когда под рукой нет ничего, кроме багов

Я видел, что появился новый дебаггер для Flash-, Flex- и AIR-приложений Arthropod. iMUGi уже о нем писал. Ну появился и пусть себе будет — думал я; мало ли дебаггеров было писано и пользовано. Все равно нет дебаггера лучше флексового, писаного Майком Мориарти, который до этого делал дебаггер для Visual Studio (Майк подсказывает по дебаггу во Flex Builder: Debugger ToolTips).

Как Arthropod помог мне в сложной ситуации

Вчера мне пришлось ловить баги в AIR-приложении на клиентском Маке, который стоит далеко за океаном, и я лишь имею к нему удаленный доступ через сервис LogMeIn.com. Ставить там целый Flex Builder для просмотра трейсов как-то сыкотно не с руки.

Тут и пригодился Arthropod. Это AIR-приложение, которое выводит ваши логи. Чтобы его использовать, нужно включить в свое приложение класс Debug, который умеет выводить не только разноцветные тексты с помощью методов Debug.log, Debug.warning и Debug.error, но и цельные объекты таких типов, как картинки (BitmapData), массивы (Array), Object и трейсить память. Также он поддерживает дополнительные опции для безопасности и удобства. По сути это не дебаггер, а трейсер, но трейсер продвинутый. Вот краткая дока по его методам.

Как использовать Arthropod-трейсер

1. Импортируем класс Debug:
import com.carlcalderon.arthropod.Debug;

2. Пишем в лог:
Debug.log("Как трудно жить среди невзгод.");

3. Запускаем Arthropod.

4. Сообщения можно раскрашивать прямо в методе log:
Debug.log("Люди украсят ими свой праздник", Debug.BLUE);

Почитайте детальнее об использовании Arthropod-трейсера.

Скачать Arthropod

Все в одном архиве, Только AIR-приложение, только класс Debug.

Резюме: Arthropod — простой, удобный и функциональный инструмент для полевых условий. В некоторых ситуациях труднозаменим. Качайте, пользуйтесь, повышайте ману.


03:37:05, Flash-ripper.com
Багфиксы и официальные обновления: Flex Builder 3.0.1 и Flex SDK 3.1

Flex не обновлялся с февраля 2008 года. За это время в него было внесено множество доработок, в том числе и по требованиям сообщества. Самые важные дополнения и завершенные багфиксы приобрели форму нового официального релиза, обновиться до которого можно прямо из меню Flex Builder: Help > Search for Flex Builder Updates...

Заведующий флексом Мэтт Хотин — кратко о составе релиза:

Flex SDK 3.1

- Масса исправлений SDK от сообщества разработчиков (полный список).
- Окончательная поддержка AIR 1.1
- Начальная поддержка Flash Player 10. Но он пока в Бете, так что SDK к нему идет отдельно.

Flex Builder 3.0.1 с компонентами визуализации данных

- Множество багфиксов в среде разработки (весь список) и в data visualization components (список).
- Поддержка Eclipse 3.4 и AIR 1.1.

Важное примечание: исходный код компонентов визуализации данных, куда входят OLAP, AdvancedDataGrid, Automation и Charting, идет только с Flex Builder Pro и по умолчанию не распакован. Достать из пучин его можно вот так, а вот еще один старый рецепт.

А еще у вас могут ошибки во Flex Builder выводиться на русском — зависит от локали.


2008-08-21

19:12:06, Flash-ripper.com
Качай Рузанова! MyDeco Room Planner в Adobe EDGE

Работа Игоря Рузанова, в чьей email-сигнатуре уже некоторое время можно видеть название "MyDeco", представлена в свежем выпуске Adobe Edge за август 2008 г. Процитирую:

MyDeco Room Planner

Specialmoves (правильно читается как "Игорь Рузанов" — Рост) поразили меня этой инновационной, интерактивной работой... я о сайте MyDeco Room Planner. На самом деле это приложение, инструмент для планировки апартаментов и художественного оформления вашего дома. С помощью высококачественных, интерактивных 3D-рендеров, вы можете конструировать свои дизайны в реальном времени, а также понять, во сколько они для вас обойдутся при физической реализации. Сайт предлагает огромный набор опций и деталей: от создания дизайнов по шаблонам до точного меблирования каждой комнаты. Можно даже поставить оценки своим любимым комнатам и просмотреть топовые. Также можно вставлять свои творения в Facebook, так что вы можете показать ваши комнаты прямо в своем профиле.

Ребята, рекомендую посмотреть — реально большая работа. Adobe поставили ее рядом с FWA Theater и The Eco Zoo от Roxic'а.

Кто был 16 августа на UAFPUG#5 в Киеве, тот уже видел супер-презентацию Игоря Рузанова про Papervision3D. Обещаю — в следующем посте она будет выложена вмместе с отчетом о встрече. Руз, так держать, старина!


11:43:03, Flash-ripper.com
Самые наступаемые грабли при работе с E4X как форматом XML

Майк Мориарти описывает популярные ошибки разработчиков при использовании E4X, а также объясняет, как перестать попадать в подобные ловушки. Признаться, я и сам не раз обламывался в работе с E4X: например, забывал, что в E4X-выражении не обязательно ссылаться на корневой тэг XML-документа. Настолько необязательно, что попросту невозможно. Корневой XML-элемент просто автоматически подразумевается в начале E4X-выражения, и если вы его впишете, то произойдет попытка найти его потомка с таким же именем — ошибка.

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

Сам E4X оказывается слишком инновационным. Он еще компактнее, чем XPath. Удивительно, что в спорах об отвержении ECMAScript 4.0 как стандарта для JavaScript никто не вспомнил об E4X, важной части этого стандарта. Есть подозрение, что ему дадут зеленый свет, так как он предлагает более компактный код для работы с XML, что должно понравиться кодерам, и в то же время не кажет видимой угрозы членам комитета TC39.

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


2008-08-20

16:58:20, Flash-ripper.com
Eclipse Enterprise IDE Plugin™ для Adobe Flex Builder

Как обещал вчера, расскажу о новом (и похоже, пока единственном, зато каком!) плагине к Flex Builder. Плагин называется Enterprise IDE Plugin™. Разработчик: компания IDE Factory.

Enterprise IDE Plugin — это набор инструментов для архитекторов, разработчиков и менеджеров проектов, созданный для упрощения разработки приложений в среде Adobe Flex Builder 3. Плагин Enterprise IDE в данный момент выходит в публичный, ограниченный по времени beta-релиз.

Плагин Enterprise IDE не заменяет и не вытесняет Flex Builder, но скорее наращивает его мощность. С помощью инструментов повышения производительности и встроенной поддержки основных open-source фреймворков для Flex и ActionScript, Enterprise IDE превращает Flex Builder в исключительную среду разработки приложений enterprise-уровня. Он включает в себя новые инструменты для навигации по коду, генераторы проектов, классов и методов, средства автоформатирования, документирования и создания метрик кода, а также инструменты общего назначения для повышения продуктивности Flex-разработчиков и архитекторов.

Перечень инструментов и функций Enterprise IDE Plugin

Почти за каждой ссылкой находятся иллюстрации, подобные нижеследующей:

Планируемые улучшения в Enterprise IDE Plugin

  • Поддержка фреймворка PureMVC.
  • Инструмент Flex Code Coverage Explorer (что такое Code Coverage).
  • Шаблоны кода.
  • Поддержка фреймворка VisualFlexUnit.
  • Поддержка фреймворка Prana.
  • Формы редактирования файлов конфигурации Flex-проектов.
  • Задачи Ant для сбора метрик проекта и форматирования кода.

Источник: трекер IDE Factory.

Ссылки по Enterprise IDE Plugin

Установил, работает.


12:21:30, Flash-ripper.com
Встречайте печатное издание — журнал Flex Authority

Alex Harui вместе с Gordon Smith поучаствовали в первом выпуске Flex Authority — нового бумажного журнала про Adobe Flex и AIR. Дизайн в духе перезрелого футуризма 80-х:
Flex Authority: Adobe Flex, AIR, and ColdFusion News
Подписаться можно уже сегодня — $49.95 в год за печатное издание и $29.95 за PDF. Алекс обещает ничего на этом журнале не заработать, но надеется, что на нем заработают издатели. На странице подписки можно узнать все ее варианты, а также то, что Google Checkout не поддерживает Russia и Ukraine. Зачеркнутое — это просто баг на странице сайта. Смелые ребята легко убедятся в том, что Google Checkout подджерживает и Ukraine, и Russia — просто нажмите 'Add' и затем красивую кнопку 'Google Checkout'. Вы перейдете на страницу оплаты Гугля, там с списке эти страны есть. За доставку в Украину взяли $10. Жду первый номер!


02:46:23, Flash-ripper.com
TheFlexShow.com — послушать про Adobe Flex

Чем больше слушаешь, тем лучше видишь: вот регулярные аудио-выпуски про Flex.

Сегодня количество выпусков перевалило за полсотни. Встречайте номер 51 — это практически прямая трансляция первого дня проходящей сейчас в Сан Джозе конференции 360|Flex, 18-20 авг. В этом выпуске: беседы с Ben Stucki, Kevin Fauth и Ron Zasadzinski.

Архив аудио-записей TheFlexShow содержит массу интересных треков, от Papervision3D до Mate Flex Framework с Лаурой Аргуэльо и Flex Gumbo, Prana и Mojos с Мэттом Хотиным.


00:44:00, Flex 2 & Co
Обновление класса Filereference в 10 плеере
В новой десятке класс Filereference стал более "безопасным". Теперь метод FileReference.browse() нельзя будет вызвать программно, а только в ответ на нажатие клавиатуры или мыши. В связи с этим возникнет необходимость переделывать флешовые аплоадеры для Flickr, SWFUpload и Wordpress.
Как говорят в Adobe, данная мера вызвана необходимостью повышения безопасности - якобы пользователя может ввести в заблуждение внезапно появившееся окошко и он случайно сохранит не то, что нужно:)
Источник

00:44:00, Flex 2 & Co
Обновление класса Filereference в 10 плеере
В новой десятке класс Filereference стал более "безопасным". Теперь метод FileReference.browse() нельзя будет вызвать программно, а только в ответ на нажатие клавиатуры или мыши. В связи с этим возникнет необходимость переделывать флешовые аплоадеры для Flickr, SWFUpload и Wordpress.
Как говорят в Adobe, данная мера вызвана необходимостью повышения безопасности - якобы пользователя может ввести в заблуждение внезапно появившееся окошко и он случайно сохранит не то, что нужно:)
Источник

00:44:00, Flex 2 & Co
Обновление класса Filereference в 10 плеере
В новой десятке класс Filereference стал более "безопасным". Теперь метод FileReference.browse() нельзя будет вызвать программно, а только в ответ на нажатие клавиатуры или мыши. В связи с этим возникнет необходимость переделывать флешовые аплоадеры для Flickr, SWFUpload и Wordpress.
Как говорят в Adobe, данная мера вызвана необходимостью повышения безопасности - якобы пользователя может ввести в заблуждение внезапно появившееся окошко и он случайно сохранит не то, что нужно:)
Источник

00:20:00, Flex 2 & Co
Во Flash-видео скоро появится новый тип метаданных
В скором времени Adobe Systems представит на обозрение новую фичу видео - voice-to-text. Это означает, что вся произносимая речь будет переведена в метаданные и внедрена в видео-ролик с помощью средств для редактирование видео от Adobe. Внедрение данной разработки окажет огромное влияние на индексацию видео-контента и видео-рекламу.

Jim Guerard, заведующий всем rich media в Adobe, говорит, что данный функционал мы сможем увидеть уже в этом году.


00:20:00, Flex 2 & Co
Во Flash-видео скоро появится новый тип метаданных
В скором времени Adobe Systems представит на обозрение новую фичу видео - voice-to-text. Это означает, что вся произносимая речь будет переведена в метаданные и внедрена в видео-ролик с помощью средств для редактирование видео от Adobe. Внедрение данной разработки окажет огромное влияние на индексацию видео-контента и видео-рекламу.

Jim Guerard, заведующий всем rich media в Adobe, говорит, что данный функционал мы сможем увидеть уже в этом году.


00:20:00, Flex 2 & Co
Во Flash-видео скоро появится новый тип метаданных
В скором времени Adobe Systems представит на обозрение новую фичу видео - voice-to-text. Это означает, что вся произносимая речь будет переведена в метаданные и внедрена в видео-ролик с помощью средств для редактирование видео от Adobe. Внедрение данной разработки окажет огромное влияние на индексацию видео-контента и видео-рекламу.

Jim Guerard, заведующий всем rich media в Adobe, говорит, что данный функционал мы сможем увидеть уже в этом году.


2008-08-19

16:48:28, Flash-ripper.com
Как расширить Flex Builder? Где взять доку? С чего начать?

Время от времени звучат нарекания на тот или иной недостаток Flex Builder'a. Некоторые ребята признают, что могли бы сделать его лучше, будь у них такая возможность. Если вы хотите усовершенствовать Flex Builder, то знайте — это реально. Главное, ответить на вопросы: что именно расширять и как расширять. Начнем с этого вопроса:

Где найти документацию по расширению Flex Builder 3?

Возможно, вы еще не знаете, что существует документация по расширению Adobe Flex Builder. Но искать ее нужно не в сети, а в локальной справке к Flex Builder: меню Help > Help Contents... Затем раздел Adobe Flex Builder 3 Extensibility > Adobe Flex Builder 3 Extensibility API Reference.

В сети этой документации нет, есть только эта страница в Flex 3 LiveDocs, где Vince Genovese из Flex Doc Team в комментариях поясняет написанное выше. А в этой записи блога "Flex Doc Team" он еще и призывает отписаться всех, интересующихся расширением Flex Builder.

Итак, если вы — Java-программист и/или желаете/умеете создавать плагины к Eclipse, то некторые карты уже у вас в руках. Некоторые, так как API расширения открывает не весь Flex Builder (являющийся плагином к Eclipse), а лишь его часть. Но и здесь есть хорошие новости:

Как расширить Adobe Flex Builder: туториалы, поддержка Adobe

На ThinkingDigital.org есть уже две статьи, посвященные расширению Flex Builder:
  1. Extending Flex builder: part 1
  2. Extending Flex Builder part deux

В комментариях к первой статье Фил Коста, тогда еще менеджер проекта Adobe Flex, пояснил, почему Flex Builder открыт для расширения частично, а не полностью. Дело вовсе не в желании Adobe заскретить или закрыть код. Причина — в намерении обезопасить разработчиков плагинов. API расширения должно быть неизменным в будущем. В противном случае все плагины-расширители начнут ломаться при обновлении Flex Builder. Это будет создавать новые проблемы разработчикам плагинов. Чтобы избежать этого, Adobe решила открыть те API, которые гарантированно не будут изменяться в следующих версиях.

Там же менеджер проекта Adobe Flex призывает разработчиков запрашивать у Adobe дополнительные точки расширения Flex Builder, и вообще не молчать, а делиться идеями, мыслями и требованиями.

Так что теперь — все карты в руки! Завтра опишу большой продажный плагин к Flex Builder.


2008-08-18

15:18:47, Flash-ripper.com
Первая встреча BAFPUG - доброе дело сделано!

Опубликован официальный отчет о первой встрече Belarussian Adobe Flash Platform User Group со ссылками на доклады и видео (следите за обновлениями).

Свои отчеты также выложили основатель BAFPUG Валерий Песецкий и докладчик на BAFPUG-1 Сергей Гончар; больше всех фото выложил Валентин Железный, а быстрее всех оказалась Валерия Маллаева, и я этому не удивлен ;-)

Мои поздравления всем, кто там был. Судя по фоткам, никто не пожалел, что пришел! Встречайтес чаще, ибо — не кодом единым.


07:33:12, Constantiner's blog
Поздравляем Юлю Николаеву aka Junique

Юлия Николаева aka Junique за работой :)Кстати, заметили вы или нет, но в субботу, 16 августа, был день рождения замечательной участницы RiaPriority.com Юли Николаевой aka Junique. Желаем ей интересных событий в личной жизни, романтических знакомств, запоминающихся поездок ну и вообще всего замечательного! Присоединиться к поздравлениям можно в комментах. Также напомню, что поздравить Юлю лично можно будет через неделю в Москве на встрече RAFPUG, что будет еще одним лишним поводом эту встречу посетить :)

Bookmark this article at


2008-08-15

22:51:54, blog.Leezarius.com
Иннерционный слайдер

Lee выложил на gotoandlearn видеоурок по созданию слайдера и прикручиванию к нему физики. Зачем это нужно? Трудно сказать, возможно в определенных сферах это и имеет некий смысл. Тем не менее возможность есть и если она вам необходима, ее можно использовать. Под катом живой пример, ссылка на исходники и видеоурок на английском.

(Please open the article to see the flash file or player.)

Видеоурок (англ.) - тут

Скачать видеурок (англ.) - тут

Скачать исходники - тут


16:33:10, Flash-ripper.com
Инновационный ECMAScript 4 отвержен, реакционный ECMAScript 3.1 становится главной веткой стандарта следующей версии JavaScript

Право же, я не собирался об этом писать, поскольку вопрос, друзья, пустяковый и не стоит вашего драгоценного времени. Но тут такое дело — Shagrat прямо в комментах обращает внимание на то, что ECMAScript4, на черновом варианте которого построены ActionScript3 и Mozilla Tamarin, не станет будущим JavaScript, а вместо него будущим продолжит оставаться прошлое JavaScript, т.е. ECMAScript3, проапгрейдженный до версии 3.1. Иными словами, JavaScript-разработчикам не видать всех тех плюшек, что были уже опробованы в AS3. В частности, можно забыть это:

- неймспейсы, пакеты и биндинг.
- новый синтаксис и новые семантические конструкции
- классы. Взамен классов будет элегантная штука "Object.freeze()", которая "замораживает" объект. Не будет в JavaScript честных классов, останется их симуляция.
- и вот эти возможности.
- в общем говоря, сохранится существующий стандарт.

Вывод: в развитии JavaScript предпочтение отдано целостности существующих подходов, а не новой функциональности. Многие браузеры попросту не готовы к реализации ECMAScript4 — фактически, есть только Mozilla с готовым движком Tamarin, а разработчикам остальных браузеров пришлось бы приспосабливаться. Для облегчения этого приспособления был создан проект ScreamingMonkey, который уже частично решает эту задачу под IE, но все еще сыроват.

ActionScript продолжит свой путь развития, и в перспективе количество отличий AS от JS может возрасти. А я мечтал, как буду писать в JavaScript и ActionScript, не задумываясь о переключении между ними.

Почему кажется, что все так плохо и когда покажется, что стало лучше?

Не все так плохо. Многое хорошо. В самом худшем варианте ActionScript3 обретает полную свободу в собственных будущих инновациях. Это означает, что разработчики Flash Player, то есть те самые люди, что 10 лет дарили сети новые идеи, анимацию, концепцию и реализацию насыщенных интернет-приложенний, онлайновое, будь оно неладно, видео, продвинутые средства разработки — все, что пришло через Flash Player и затем было перенято как лучшие технологии — эти люди теперь смогут совершить новый скачок в разработке ActionScript 4 (ActionScriptX), поскольку их язык не стал стандартом, следовательно, никакие комитеты им не указ, следовательно, их руки свободны. Это мои мечты о самом худшем варианте. Да, Adobe сделала свою попытку стать чем-то большим. В результате совершения этой попытки могло случиться так, что все полюбят флэш за то, что он дал миру такой чудесный и удобный новый JavaScript. Однако, что-то мне подсказывает, что вероятность этого мала. Могли бы — уже полюбили бы.

А в лучшем варианте, что-то мне подсказывает, что решение W3C относительно будущего ECMAScript4 и JavaScript будет пересмотрено. Не та ныне сеть, чтобы легко согласиться на устаревший стандарт в качестве нового. Хотя ни у кого, в общем-то, и не спрашивают, и вряд ли спросят. Но если разовьется этот, лучший вариант, то Adobe придется с новой силой вкладываться в Tamarin, и в то, чтобы их детище полюбили все, или хотя бы большинство. А это непросто.

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

В то же время, следует узнать, что это весьма нелегкое решение было принято в процессе слияния двух рабочих групп. Группа ECMAScript3.1 слилась с группой ECMAScript 4, и в процессе слияния получила преимущество во имя стабильности и гармонии. Объединенная группа так и называется — Harmony. Глава Mozilla Foundation Брендан Эйк подробно описал, как все было и почему так нужно. По своему согласен с этим создатель MTASC и haXe Николя Канасье.

Что по этому поводу говорит Adobe

Официальная позиция Adobe разъяснена и звучит так: Adobe за стандарты и стандарты — это в первую очередь способ обеспечения эффективного взаимодействия. Adobe будет продолжать работу в группе ECMAScript и работу над стандартами. В то же время, Adobe не прекратит и работу над инновациями, и всеми Open Source проектами, поддерживаемыми ею сейчас, как инициированными Adobe, так и прочими. Пакеты и пространства имен из языка ActionScript исключаться не будут.

Adobe продолжит расширять границы возможного в сети.


14:06:26, Flash-ripper.com
Тшьорт кат! Меньше кликов, больше дела, флэшеры

Как заставить роботов роботать, а людей — думать? Можно ли повысить продуктивность и без того уже, казалось бы, сверхскоростной работы? Как перестать работать и начать жить? Завеса тайны над перечисленными проблемами слегка приоткрывается в посте 0xFFFFFF о том, как сэкономить 90 процентов времени при работе с элементами библиотеки во Flash. А первый комментарий к посту добавляет ощущения реальных глубин Flash IDE, которые мы не постигли до конца.

К этой же проблеме есть большой перечень приемов по облегчению жизни флэш-разработчика — я там столько нового узнал, там столько всего понаписали — спасибо, ребята!


2008-08-14

17:17:56, Flash-ripper.com
Adobe AIR: как поместить окно поверх остальных окон

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

Например, для того, чтобы установить окно поверх остальных, используется метод orderToFront(). Однако я наткнулся то ли на баг, то ли на фичу этого метода: если другое окно получило фокус от мыши, то ваше окно поверх остальных не всплывет. Хотя при этом активизируется: фокус получит и будет призывно подмигивать в панели задач.

Затем я нашел и способ обхода этой неприятности, используя свойство окна alwaysInFront, и уйдя от использования orderToFront(). Сначала окно переводится в состояние "поверх всех" (alwaysInFront = true), затем активизируется, и, если было минимизировано, то восстанавливается; затем возвращается в состояние "не поверх всех" (alwaysInFront = false). Вот что получилось:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:creationComplete>
flash.utils.setTimeout(activateWindow, 2000);
function activateWindow(): void
{
alwaysInFront = true;
nativeWindow.activate();
if(nativeWindow.displayState == NativeWindowDisplayState.MINIMIZED)
{
nativeWindow.restore();
}
alwaysInFront = false;
}
</mx:creationComplete>
</mx:WindowedApplication>

Таким образом, все работает! Но меня гложут сомнения: а что если я просто не умею это готовить? Если знаете ответ — подскажите, можно ли обойтись без хака с alwaysInFront = true?


15:15:00, Flex 2 & Co
Откуда у функции length?
На днях столкнулся с такой проблемой.
После переноса цикла в функцию, в последней остался параметр length, который был локально обозначен перед циклом и был успешно там забыт. Но ошибки компилятор не выдал и косяк не был замечен сразу. Потом я обратил внимание на этот загадочный length.
Откуда же он взялся?
А взялся он от функции и равен количеству аргументов, заданных в сигнатуре функции. Он отличается от arguments.length тем, что arguments.length равен реально переданному количеству аргументов. Например, если компилировать в standard mode:
function traceLength(x:uint, y:uint):void
{
trace("получено: " + arguments.length);
trace("ожидалось: " + traceLength.length); // или просто length
}

traceLength(3, 5, 7, 11);
/* output:
получено: 4
ожидалось: 2 */
Ссылка на доку

15:15:00, Flex 2 & Co
Откуда у функции length?
На днях столкнулся с такой проблемой.
После переноса цикла в функцию, в последней остался параметр length, который был локально обозначен перед циклом и был успешно там забыт. Но ошибки компилятор не выдал и косяк не был замечен сразу. Потом я обратил внимание на этот загадочный length.
Откуда же он взялся?
А взялся он от функции и равен количеству аргументов, заданных в сигнатуре функции. Он отличается от arguments.length тем, что arguments.length равен реально переданному количеству аргументов. Например, если компилировать в standard mode:
function traceLength(x:uint, y:uint):void
{
trace("получено: " + arguments.length);
trace("ожидалось: " + traceLength.length); // или просто length
}

traceLength(3, 5, 7, 11);
/* output:
получено: 4
ожидалось: 2 */
Ссылка на доку

2008-08-13

20:11:31, Flash-ripper.com
Adobe AIR: отслеживаем доступность сетевых ресурсов

Если вы создаете работающее с сетевыми ресурсами AIR-приложение, то в процессе отладки рано или поздно возникнет задача: проверить доступность сети и правильно обработать возможные ситуации, такие, как: сети нет, сеть есть на старте приложения, но пропадает в процессе работы; сеть появляется снова после пропажи и т.д. Точнее, нас интересует даже не сеть, а доступность конкретных ее ресурсов типа веб-сервисов.

Задача проверки доступности сетевых ресурсов легко решается в Adobe AIR, тут надо только знать рецепт — и никаких хаков.

Кто здесь? Это класс NativeApplication и событие networkChange

AIR-класс NativeApplication распространяет событие networkChange каждый раз, когда с сетью происходит что-то существенное типа пропажи или появления подключений. Заковыка в том, что это событие ровным счетом ничего не говорит о сути происходящего с сетевыми подключениями. Это событие лишь ставит приложение перед фактом изменения состояния сети. Разбираться в том, что случилось с важными для приложения сетевыми ресурсами, должен разработчик приложения. Вот как он это делает:

Рецепт Номер Один: проверяем, доступен ли сетевой ресурс

Рецепт в том, чтобы при появлении события networkChange пинговать определенный сетевой ресурс с помощью HEAD-запроса самым обычным URLLoader'ом. Рецепт придуман не мною и не сегодня; он существует еще со времен Apollo Alpha и хорошо описан: Adobe AIR: Detecting network connectivity. Там вы найдете два примера кода: один для SWF- и один для HTML-приложения. Возьмите любой из них и у вас не останется вопросов. Да и какие тут могут быть вопросы: мы просто отлавливаем событие networkChange и пингуем ресурс, например, домстраницу нашего целевого сайта, слушаем, что придет в ответ на пинг, разбираем этот ответ и решаем, что с этим делать.

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

Рецепт Номер Два: следим за сетью через Adobe AIR Service Monitor Framework

Официально рекомендуемая Adobe техника мониторинга сети для AIR-приложений: Adobe AIR: Monitoring network connectivity. Эта техника сложнее, чем описанная выше, но и позволяет добиваться более точных результатов; кроме того, она может также использоваться для мониторинга сокетных соединений. Для решения этих задач в Adobe создали небольшой фреймворк, хранящийся в AIR SDK по адресу "[AIR_SDK]/frameworks/servicemonitor.swf", а во Flex SDK — в библиотеках: "[FLEX_SDK]/frameworks/libs/air/servicemonitor.swc". По сути, этот фреймворк инкапсулирует в себя код, подобный коду из первого рецепта, а также дополняет его новой функциональностью. Сейчас там есть есть ServiceMonitor и SocketMonitor.

Это решение определенно будет развиваться Adobe (две последние ссылки ведут на доку к Flex Gumbo), а базовые задачи проверки доступности ресурсов решает уже сейчас.


17:38:00, Flash-разработка
Ограничение в Inpit-TextField. AS3
Для того, что бы ограничить ввод, многие используют окно "Character Embedding" (кнопка "Embed"). Указав нужные диапазоны символов, мы не только ограничиваем внедрение шрифта, но и ограничиваем возможность ввода символов в строку.

Однако, это не всегда работает верно. Точнее, работает хорошо, но не предназначено для ограничения ввода символов. Вот пример, с которым я столкнулся. Я делаю Flex-компонент во Flash IDE и вставляю его в Flex-проект. Компонент содержит строку ввода с описанным выше ограничением шрифта (без некоторого диапазона символов). В свою очередь, Flex-проект уже содержит внедрение того же шрифта для своих нужд. Но только уже без ограничений (с наличием этого диапазона символов). В итоге, при конечной сборке проекта, строка ввода компонента беспрепятственно позволяет вводить все символы, не смотря на описанные выше ограничения. По всей видимости, шрифт, внедренный в компонент объединяется при компиляции с тем, что внедрен в Flex-проекте.

Для того, чтобы правильно ограничить ввод, в TextField предусмотрено свойство restrict.
Это строка, в которой можно указать как простую последовательность символов ("!#$%()*"), так и диапазоны символов ("0-9 A-Z a-z"). Символы, которые указаны в строке restrict можно будет вводить в поле ввода TextField. Ввод других символов будет запрещен. Для исключения символов из диапазона имеется спец-символ "^", после которого указывается исключаемый символ или диапазон символов. В хелпе про это всё хорошо написано.

Здесь есть один подводный камень. Если вы указываете в restrict диапазон в кириллице - обязательно обратите внимание на кодировку AS-файла, который содержит этот код. Если он не в кодировке UTF-8, то русские буквы в TextField вводиться не будут. Из-за такой мелочи можно убить много времени впустую.

15:49:50, Agahov's blog
Flex-Mojos. Пример сборки flex modules.

Предисловие

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

Введение

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

Структура проекта

Данная структура соответствует принципу один maven модуль один артефакт. Следовательно flex модуль представлен ввиде отдельного maven модуля.

flexModulesProject/
flexModulesProject/pom.xml - основной pom, собирающий весь проект
//загрузчик модульного приложения.
flexModulesProject/flexClient/… - основное flex приложение

flexModulesProject/flexModuleRed/… - flex модуль

flexModulesProject/flex/pom.xml - корневой pom для flex приложение.
flexModulesProject/flexCoreLib/… - flex библиотека которая используется в проекте.

Разбор конфигурационных файлов проекта

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

pom для flexClient

XML:

<?xml version="1.0"?>
<project>
     <parent>
   <groupId>com.mydomain.mypackage</groupId>
         <artifactId>my-flex-super-pom</artifactId>
         <version>1.0</version>
     </parent>
  
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.mydomain.mypackage</groupId>
      <artifactId>flex-client</artifactId>
      <packaging>swf</packaging>
      <name>flex client</name>
      <version>1.0</version>
      
      <build>
        <plugins>
            <plugin>
            <groupId>info.rvin.mojo</groupId>
            <artifactId>flex-compiler-mojo</artifactId>
            <configuration>
                <debug>true</debug>
                <sourceFile>flexClient.mxml</sourceFile>
                <linkReport>true</linkReport>
            </configuration>
      </plugin>
        </plugins>
    </build>
      
      
        <dependencies>
               <dependency>
                  <groupId>com.mydomain.mypackage</groupId>
                  <artifactId>flex-core-library</artifactId>
                  <version>1.0</version>
                  <type>swc</type>
                  <scope>internal</scope>
               </dependency>
        </dependencies>
</project>

Здесь существенна одна дирректива:

XML:

<linkReport>true</linkReport>

данная строчка создает в maven репозитории xml файл с перечнем всех классов, которые включаются в данный swf. Этот перечень будет использоваться при копмиляции flex модуля.

pom для flexModuleRed

XML:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
     <parent>
  <groupId>com.mydomain.mypackage</groupId>
        <artifactId>my-flex-super-pom</artifactId>
        <version>1.0</version>
      </parent>
    <groupId>com.mydomain.mypackage</groupId>
  <artifactId>flexModuleRed</artifactId>
  <packaging>swf</packaging>
  <name>flex module red</name>
  <version>1.0</version>
    <build>
        <plugins>
            <plugin>
            <groupId>info.rvin.mojo</groupId>
            <artifactId>flex-compiler-mojo</artifactId>
            <configuration>
                <debug>true</debug>                
                <sourceFile>FlexModuleRed.mxml</sourceFile>
                <loadExterns>
          <MavenArtifact>
            <groupId>com.mydomain.mypackage</groupId>
            <artifactId>flex-client</artifactId>
            <version>1.0</version>
          </MavenArtifact>
                </loadExterns>
 
 
 
            </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>
          <dependency>
              <groupId>com.mydomain.mypackage</groupId>
        <artifactId>flex-core-library</artifactId>
              <version>1.0</version>
              <type>swc</type>
              <scope>external</scope>
          </dependency>
     </dependencies>
</project>

следующий код:

Code:

<loadExterns>
  <MavenArtifact>
      <groupId>com.mydomain.mypackage</groupId>
      <artifactId>flex-client</artifactId>
      <version>1.0</version>
   </MavenArtifact>
</loadExterns>

исключает классы которые включены в flex-client.

здесь:

Code:

<dependency>
  <groupId>com.mydomain.mypackage</groupId>
  <artifactId>flex-core-library</artifactId>
  <version>1.0</version>
  <type>swc</type>
  <scope>external</scope>
</dependency>

важно включение библиотеки со scope external.

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

Сборока проекта.

Для сборки проекта необходимо в корневой библиотеке проекта запустить команду mvn install

Развертывание проекта.

Строго говоря, в обязанности maven эта задача не входит. После того как проект будет собран, нужно поместить flexModuleRed.swf в одну папку с flexClient.swf.

Исходники

Исходники можно взять отсюда

Bookmark this article at


14:55:48, Flash-ripper.com
Вышла дебаг-версия Flash Player 10 Release Candidate

Кандидат в релиз-версию Flash Player 10 (build 569) вышел несколько дней назад, а вчера появилась и его версия для отладки приложений. Изменения, вошедшие в проигрыватель, в большой степени нацелены на Linux-платформу:

  • Намного выросла производительность программного фуллскрина;
  • Windowless-режим стал быстрее и стабильнее (проверяйте на свежих браузерах);
  • SSL теперь работает через NSS, а не через связку flashsupport-OpenSSL;
  • Вход с камеры работает не в пример лучше прежнего (поддерживаются камеры V4L1 и V4L2; V4L2 больше не флудят процессор);
  • Исчезли белые пятнышки при воспроизведении видео. Реальную фичу убрали ;-)
  • Важные доработки стабильности — реже падает.
  • Для справки: еще не 64-битный.

Чтобы пользоваться новым Flash Player 10, важно деинсталлировать предыдущий. А чтобы компилировать приложения под новый проигрыватель, нужно скачать свежую версию компилятора для Flex SDK. А чтобы знать, как им пользоваться, качайте документацию по Flash Player 10 API (одним архивом).

Где взять новый Flash Player 10 Release Candidate Debug Version

Прямые ссылки для скачивания дебаг-версии Flash Player 10 Release Candidate из репозитория Adobe: Flash Player 10 Win, Flash Player 10 Mac, Flash Player 10 Linux. Обратите внимание: эти последние три ссылки ведут на trunk, то есть основную ветку репозитория. Значит, выйдет Flash Player 10 уже совсем скоро. Дай угадаю: Flash Player 10 выйдет 10 октября 2008 года.

2008-08-12

19:06:25, Flash-ripper.com
Adobe Flex 3.0 для чайников поступила в продажу

Небезызвестный флекспериментатор, багоподавитель и фреймворкер Даг МакКун в соавторстве с Дипой Субраманьямом написали книгу:

На Амазоне "Adobe Flex 3.0 For Dummies" стоит каких-то жалких $19.79.


14:25:00, 33 коровы
Google maps

Гугл все время радует мелкими приятными плюшками.

Смотря гугл карты я обнаружил, что их подружили с википедией.

Выбираем галочку:

видим буковку, по нажатию будет текст из википедии

Ну и как альтерантива этому тандему есть проект wikimapia.org, викикарта на базе тех же гугловых карт )


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