Adobe Flex

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:41, 20 декабря 2017.
Apache Flex
Разработчики: Apache Software Foundation and Adobe Systems
Выпущена: June 20, 2004
Постоянный выпуск: 4.15.0 / 11 January 2016 года; 5 years ago (2016-01-11)
Состояние разработки: Active
Написана на: ActionScript, Java (programming language)
Операционная система: Windows, macOS, Linux, Android (operating system), iOS, BlackBerry Tablet OS
Локализация: Various between websites
Тип ПО: Software development kit application
Лицензия: Apache License version 2.0
Веб-сайт Apache Flex and Adobe Flex

Adobe Flex (или Apache Flex) - комплект средств разработки (SDK (Software Development Kit)) для создания кросс-платформенных насыщенных интернет-приложений (Rich Internet Applications) на основе Flash. [Источник 1]

Adobe Flex – это сравнительно новая и весьма продвинутая платформа для разработки тонких Web-приложений, основанная на технологии Adobe Flash. Среда разработки представляет собой бесплатный SDK, плюс плагин Eclipse IDE для визуального редактирования и отладки. Для выполнения кода (как и прежде, содержащегося в .swf-файлах) требуется Flash Player 9.[Источник 2]

Flex расширяет базовые возможности flash, позволяя описывать интерфейс приложения на XML (eXtensible Markup Language) языке. Логика приложения пишется на ActionScript3. Результатом компиляции является SWF файл предназначенный для выполнения в браузере (На платформе Adobe Flash Player), или как самостоятельное приложение (на платформе AIR).

Flex-приложение может компилироваться на сервере (для этого потребуется mod_flex.so или mod_flex.dll в зависимости от ОС и веб-сервера), а может — из IDE или непосредственно из командной строки с помощью компилятора mxmlc (начиная с Flex 2), как и во Flash, результатом является файл swf, исполняемый в Flash Player.

Отличия Flex от Flash

Adobe Flex

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

Новый логотип - Apache Flex

Flex SDK существенно расширяет стандартный возможности Flash технологии, позволяя свободно описывать интерфейс создаваемого приложения на языке XML (eXtensible Markup Language), ускоряя и упрощая при этом весь процесс разработки веб-приложений. Вся бизнес логика приложения пишется на языке программирования ActionScript. Результатом компиляции созданного проекта является SWF файл, предназначенный для исполнения в веб-браузере (на основе Flash Player) или как полностью самостоятельное полноценное настольное приложение (на базе AIR). Flex приложение может свободно компилироваться и на веб-сервере Apache, только для этого потребуется дополнительный модуль mod_flex so или mod_flex dll в зависимости от операционной системы и веб-сервера, а может — из непосредственно IDE или даже из самой командной строки при помощи компилятора mxmlc. Опять же, как и во Flash, результатом будет файл типа swf, легко исполняемый во Flash Player.[Источник 3]

Инструменты для работы с анимацией и графикой используют базовые возможности flash. Поэтому баннеры и медийная реклама делаются без использования flex.

Flex не предоставляет таких средств, как рисование векторных изображений и анимации.[1] Предполагается, что при необходимости использования .swf-анимаций в качестве элементов оформления, разработчик импортирует готовые анимации из Flash. Однако в Flex предусмотрен набор стандартных эффектов, таких как движение, размывание, изменение цвета или альфа-канала и т.п. Также имеются средства группировки эффектов, с параллельным или последовательным выполнением, с возможностью вложения групп. Эффекты удобно использовать, например, для анимации выпадающих меню.[Источник 4]

Достоинства

Flex, помимо скорости разработки, предоставляет полные мультимедийные возможности Flash Platform:

  • потоковое мультимедиа;
  • возможность получить доступ к веб-камере и микрофону пользователя;
  • бинарные сокеты;
  • обширные возможности сетевых коммуникаций (HTTP-запросы, веб-сервисы, встроенный формат сериализации AMF);
  • оперирование координатами трехмерного пространства;
  • возможности использования встроенных фильтров (таких как расфокусировка, падающая тень и др.) и написание собственных.[Источник 5]

Благодаря Flex, веб-сервисы могут использоваться для связи с сервером при частом обращении к данным при небольшой полезной нагрузке. Для более ресурсоемких приложений Adobe предлагает программное обеспечение Flex Data Services 2 Express, которое может поддерживать связь между источником данных и уровнем представления. Flex Data Services 2 способен передавать данные с сервера на клиент. Серверный компонент может, например, извлечь данные из серверного приложения SAP и переслать их клиенту. Теперь функции Flex Presentation Server встроены в Flex Data Services.

Ещё одно неоспоримое достоинство технологии Flex, тесно связанное с достоинствами ActionScript 3 — это возможность OpenSource разработки Flash-проектов без использования Adobe Flash Professional, с помощью «чистого» программирования. При этом Flash-разработка становится принципиально доступна в том числе и на Unix-платформах.

Недостатки

Работа flex-framework основана на относительно большом количестве собственного AS3-кода. Для примерной оценки: стандартный набор классов, включаемый по умолчанию в каждое разрабатываемое flex-приложение, занимает более 700 килобайт в итоговом swf-файле. Таким образом, общий объём кода, необходимый для исполнения flex-приложения, заметно увеличивается. В более поздних версиях флеш-плеера реализован механизм, который даёт возможность использовать классы flex, не включая их в каждый отдельный swf. При первом запуске такого swf, флеш-плеер подгрузит необходимые файлы с официального сайта в отведённый для этого кэш флеш-плеера. Однако, подгрузка дополнительных файлов из внешнего источника в некоторых случаях является неприемлемой или нежелательной. В этом случае, компоненты flex-framework должны быть скомпилированы и добавлены непосредственно в swf-файл, что заметно увеличивает размер swf-файла, если речь идёт о "легковесных" приложениях.[Источник 6]

Cкачивание Apache Flex

Пример

Вот пример приложения Flex 3, использующего MXML и ActionScript :

<?xml version="1.0" encoding="utf-8"?>
 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml [archive]" layout="absolute">
  <mx:Script>
   <![CDATA[
     // Code ActionScript 3.0 directement intégré dans le fichier MXML
     // Ce code pourrait être placé dans un fichier séparé avec l'extension .as
     public function sayHello():void {
       lblResults.text = "Hello " + txtName.text;
     }
   ]]>
 </mx:Script>
 <mx:Panel x="10" y="10" width="306" height="200" layout="absolute" title="Say Hello">
   <mx:Label x="10" y="10" text="Entrez votre nom :"/>
   <mx:TextInput x="10" y="36" id="txtName"/>
   <mx:Button x="178" y="36" label="Dis Bonjour" click="sayHello()"/>
   <mx:Label x="10" y="66" id="lblResults"/>
 </mx:Panel>
</mx:Application>

Этот код рисует форму, которая позволяет пользователю ввести свое имя, а затем вывести "Hello + [введенное имя]" при нажатии на кнопку "Dis Bonjour!".

Тот же пример с Flex 4 и с помощью компонентов Spark[2]:

 <?xml version="1.0" encoding="utf-8"?>
  <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009 [archive]"
                  xmlns:s="library://ns.adobe.com/flex/spark"
                  xmlns:mx="library://ns.adobe.com/flex/mx">
  <fx:Script>
   <![CDATA[
   // Code ActionScript 3.0 directement intégré dans le fichier MXML
   // Ce code pourrait être placé dans un fichier séparé avec l'extension .as
   public function sayHello():void {
    lblResults.text = "Hello " + txtName.text;
   }
  ]]>
  </fx:Script>
  <s:layout>
    <s:BasicLayout />
  </s:layout>
  <s:Panel x="10" y="10" width="306" height="200" title="Say Hello">
   <s:layout>
     <s:BasicLayout />
   </s:layout>
   <s:Label x="10" y="10" text="Entrez votre nom :"/>
   <s:TextInput x="10" y="36" id="txtName"/>
   <s:Button x="178" y="36" label="Dis Bonjour!" click="sayHello()"/>
   <s:Label x="10" y="66" id="lblResults"/>
  </s:Panel>
  </s:Application>

Источники

  1. Apache Flex // Wikipedia: сайт. [2017—2017]. Дата обновления: 24.08.2017. URL: https://ru.wikipedia.org/wiki/Apache_Flex (дата обращения: 22.08.2017).
  2. Adobe Flex 2.0 – обзор и впечатления // Rsdn: сайт. [2017—2017]. Дата обновления: 24.08.2017. URL: http://rsdn.org/article/inet/FlexForFlashers.xml (дата обращения: 22.08.2017).
  3. Adobe Flex SDK 4.6 // Softodon: сайт. [2017—2017]. Дата обновления: 24.08.2017. URL: http://softodon.com/software-571-adobe-flex-sdk.html (дата обращения: 22.08.2017).
  4. Adobe Flex 2.0 – обзор и впечатления // Rsdn: сайт. [2017—2017]. Дата обновления: 24.08.2017. URL: http://rsdn.org/article/inet/FlexForFlashers.xml (дата обращения: 22.08.2017).
  5. Adobe Flex // Dic.academic: cайт. [2017—2017]. Дата обновления: 24.08.2017. URL: http://dic.academic.ru/dic.nsf/ruwiki/167226 (дата обращения: 23.08.2017).
  6. Apache Flex // Wikiplanet: сайт. [2017—2017]. Дата обновления: 24.08.2017. URL: https://www.wikiplanet.click/enciclopedia/ru/Apache_Flex (дата обращения: 23.08.2017).

Примечания

  1. Имеется возможность рисовать векторные изображения программно (а также программно отображать внедрённые в .swf-файл или динамически загружаемые растровые изображения). Но этот подход эффективен в очень ограниченном количестве случаев.
  2. В новом SDK разработчики существенно переделали старые компоненты, сильно облегчив их и урезав значительную часть возможностей. В основном это было сделано с целью оптимизации, новые компоненты получили название Spark. В большинстве случаев разница между halo и spark компонентами не заметна, но есть и сильно измененные компоненты. Теперь все визуальные компоненты имеют некий базовый класс который определяет базовою функциональность (обработку событий, поведение, свойства) и скины (skins), которые определяют вид и прорисовку.

Ссылки

  1. Apache Flex
  2. Пример приложения на Flex 2