User's collector

Внимание!   Данная опция будет доступна только после того, как вы авторизуетесь.
   запомнить меня 
22 марта 2010

Вышел Adobe Flash Builder 4

Сегодня на сайте Adobe.com появилась релизная версия Adobe Flash Builder 4, а следовательно и Adobe Flex 4 SDK.

Я этот момент уже достаточно давно поджидаю, поскольку Flex 4 SDK beta2, при помощи которой я до этого времени компилировал разрабатываемое приложение, была нестабильна. В общем, ура, товарищи! :)

11 комментариев

Теги:

Предлагаю вашему вниманию небольшой трюк по оптимизации Flex приложений.

Часто бывает необходимым наделить свой класс возможностью рассылать события, однако мы почти уверены, что подписываться на эти события объекты-получатели будут крайне редко. Поэтому не хочется наследовать в своем классе весь функционал flash.event.EventDispatcher и запускать «без дела» в коде своего класса распространение событий вызовом метода dispachEvent().

Как раз на этот случай во Flex 4 framework припасен утилитный класс mx.utils.OnDemandEventDispatcher, позволяющий улучшить производительность нашего приложения по двум направлениям:

  • OnDemandEventDispatcher не является наследником EventDispatcher, а только лишь реализует интерфейс IEventDispatcher. Класс посредством композиции делегирует выполнение методов, объявленных в интерфейсе, внутреннему экземпляру EventDispatcher. Сам же внутренний объект-диспетчер создается только в случае необходимости — при первой подписке на рассылку событий от текущего объекта. Таким образом, удается немного сэкономить занимаемый приложением объем оперативной памяти.
  • Если еще ни один объект не подписывался на получение событий, то делегирование методов внутреннему объекту-диспетчеру не производится. Тем самым, глубина стека выполнения функций ограничивается методами объекта-диспетчера. Это хорошо иллюстрирует листинг, взятый из класса OnDemandEventDispatcher:
    Actionscript:
    1. public function dispatchEvent(event:Event):Boolean
    2. {
    3.     if(_dispatcher != null)
    4.         return _dispatcher.dispatchEvent(event);
    5.     return true;
    6. }

Таким вот нехитрым образом, наследуясь там, где это необходимо, от класса OnDemandEventDispatcher мы хоть и ненамного, но все же улучшаем производительность нашего Flex приложения.

Комментариев нет

Теги:

Вчера вышла новая EAP-сборка Intellij IDEA 9805 с поддержкой пространств имен в MXML-разметке Flex 4 Gumbo. Если кто не в курсе, эти пространства имен появились после отказа от префикса Fx в именах компонентов Gumbo.

Редактирование пространств имен, о которых будет известно среде разработки, производится в настройках проекта (комбинация Ctrl+Alt+Shift+S) на вкладке Flex Compiller Settings. Однако добавлять в этот список стандартные пространства имен (http://ns.adobe.com/mxml/2009, library://ns.adobe.com/flex/spark, library://ns.adobe.com/flex/halo, http://www.adobe.com/2006/mxml и http://ns.adobe.com/fxg/2008) совсем необязательно — они подхватываются средой «на лету» из файла flex-config.xml.

Хочется пожелать разработчиками также побыстрее справиться с изменившимся синтаксисом стилевых блоков CSS. ;-)

Примечание: если вы используете самостоятельную сборку Flex 4 SDK и у вас не компилируется SWF-файл приложения, то это означает, что вам необходимо удалить файл IDEA_INSTALL_DIR\plugins\flex\lib\idea-fcsh-fix.jar. Более подробно об этой ошибке читайте в JetBrains JIRA.

4 комментария

Теги:

Многие знают, что, за исключением 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_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 с теми изменениями, которые внесли в trunk разработчики, необходимо выбрать пункт SVN Update (Обновить) в контекстном меню папки с рабочей копией, дождаться завершения процесса обновления и пересобрать проект. Таким образом вы всегда будете иметь на своем компьютере самую свежую версию Flex 4 SDK.

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

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

22 комментария

Теги: