Что такое Flex и что такое ActionScript 3.0. Расставим точки над i:
Примечание второй редакции: речь идет уже о Флекс 2, имеющий на порядок большие возможности, да еще и объявленной Adobe официально бесплатной. Я умышленно вырезал все, что касалось только версии 1.5.
Не думал, что придется писать этот пост. Не хотел. Пришлось.
Последнее время я встречаю десятки людей, заблуждающихся и несправедливо связывающих AS3 и Flex. Спору нет, AS3 пока можно попробовать лишь при помощи Flex Builder 2, который, в полной версии, будет его поддерживать. Но! ActionScript 3.0 -- будущее всей Flash Platform в целом и для меня, человека, использующего Flex пока реже, чем Flex, AS3 -- это будущее Flash. Не надо связывать его только с Flex.
Продолжаем. Есть индивидуумы, порой даже модераторы одного крупного ресурса о Flash в Рунете, которые вообще не знают, что такое Flex.
Итак, Flex -- это родственная Flash технология, основанная на описании интерфейса приложения с помощью диалекта XML -- MXML. Flex приложение может компилироваться на сервере, а может -- из IDE, как во Flash, результатом является swf файл. Достоинства Флекса тесно связаны с его недоcтатками, а точнее -- спецификой применения.
Без загрузки внешних роликов (нет, что вы, возможность такая ни куда не делась, это гипотеза) мы не можем создать экстраординарного интерфейса, точнее, это сложнее, чем во Flash. Но в случае со строгими интерфейсами бизнес-приложений скорость разработки просто потрясающая, ничего подобного ни Flash, ни AJAX предложить не могут.
Судите сами:
Объекты связываются посредством событий либо в коде, либо в интерфейсе (в режиме Design). Морщащихся программистов успокоим тем, что при желании вам доступна каждая строка кода.
Поведения: то есть, к примеру, анимации появления, скрытия и т.п., описываются тэгами и могут быть привязаны к объекту / событию / смене состояния приложения, опять же, без написания собственного кода. Зачем прописывать руками очевидные вещи?
Во Flex существует модель состояний. Совокупность объектов и их позиций, а также значений свойств -- состояние. Мы можем переходить из состояния в состояние с помощью транзиженов, связывая одно с другим посредством третьего прямо в описании интерфейса.
Нам доступны мощные средства для контроля layout, которые во Flash делались руками.
Мы можем связывать объекты, содержащие изменяющиеся данные, например, DataGrid, ComboBox и т.п., можно связывать с источниками данных без компонентов, напрямую. Источниками этими могут быть как XML документы, разной масти Value Objects, объекты RecordSet из БД, данные, полученные у вебсервисов и т.п. Все это может сделать даже дизайнер, понимающий по-английски и немного представляющий, что же такое есть связывание данных.
Собственные компоненты создаются до смешного просто: составьте интерфейс вашего компонента, опишите событийную модель, свяжите, если надо, компонент с данными (можно прямо в интерфейсе), и все. Никаких описаний обработчиков для ресайза, никаких сложных структур классов, в которых зашит GUI, всего этого при вдумчивом подходе вы избежие, сэкономив время.
Вся мощь огромного количества революционных нововведений ActionScript 3.0 поможет вам в этом.
Также Флекс славен своими графиками, компоненты для построения которыхсделаны не только удобными для использования, но и в 99% случаев выглядят приемлимо для использования as is. Пример -- графики Google Analytics.
Грустно, что люди, зарабатывающие Flash разработками в России, в большинстве своем не знают о Flex ничего...
А ведь Flex 2 SDK (плагин к Эклипсу, компилятор, документация) Adobe сделала официально бесплатной. Да и цена Flex Enterprise Services доступна теперь и в России -- < $1K. Да, более чем в 10 раз дешевле, чем предыдущая версия.
--
14 ноября 2005,
обновлено 16 февраля 2006,
Майкл Клишин