Flash 5 - новые возможности

Максим Косенко

Начну с определения, возможно, несколько неожиданного для многих, но дающего направление всему дальнейшему разговору: "Flash 5 - язык программирования нестандартных интерфейсов с векторной анимацией".

Здесь делается основной упор на то, что интерфейсы нестандартны. Что имеется в виду, зачем это нужно и к чему это ведет?

"Нестандартные" интерфейсы имеют ряд отличий от "стандартных" (под "стандартными" подразумеваются привычные интерфейсы HTML):

  1. Специальные управляющие объекты (кнопки, панели, блоки). Для примера, рулетка в Microsoft Word - нестандартный объект. Ее практически невозможно реализовать в HTML, только картинку, но не интерактивную функциональность.
  2. Независимое размещение объектов, другими словами, не размещение объектов относительно друг друга, а расположение по координатам и уровням. В DHTML такая возможность существует, но в DHTML надежно реализовать можно только совсем простые вещи.
  3. Прозрачное взаимодействие с любым объектом. Т.е. все объекты равны, не складывается ситуация, когда часть принадлежит системе, часть вашему коду, и т.д., и при этом набор обрабатываемых событий один для всех.

В результате подобной "нестандартности" появляется полная свобода в создании интерактивного интерфейса, более удобного, более наглядного, более функционального. Это реально повышает уровень предоставляемого сервиса. А значит, достигается "customer satisfaction" (удовлетворение посетителя), и, в конечном итоге, система становится более конкурентоспособной.

И именно Flash 5 дает возможность делать такие интерфейсы принципиально проще, чем любой другой инструмент, который можно всерьез рассматривать как сколько-нибудь значимую рыночную технологию.

Разработчики, попробовавшие программировать в среде Flash 5, подтвердят мои слова: Flash - уже не просто технология для создания анимационных роликов. Другими словами, Flash стал применим для создания интерактивных приложений.

Резонно задаться вопросом: а оно надо? Есть ли смысл использовать Flash 5 там, где он никогда не использовался? Ведь "несть числа" всевозможным языкам программирования, описывающим клиентскую часть. А Flash, к тому же, - один из самых медленных.

Здесь важно понять, что существует два принципиальных условия применения Flash:

  1. Надо аккуратно выбирать область применения Flash за пределами анимации.
  2. Этим инструментом надо уметь грамотно пользоваться.

С первым условием достаточно просто: Flash нужен там, где нестандартный интерфейс дает много новых возможностей, где нужна интерактивность, где не подходит "спартанская" внешность. При совпадении всех этих требований имеет смысл задуматься об использовании Flash 5 в качестве инструмента для построения системы.

Чем определяется "грамотность" применения Flash 5? Необходимо определиться, каковы преимущества использования именно Flash в конкретном проекте, и с какими "подводными камнями" придется столкнуться.

Основные плюсы программирования в среде Flash 5 - в процессе разработки:

  1. Почти каждая аккуратно запрограммированная функция сразу очевидно полезна во многих местах.
  2. Возможно построение универсального сервера.
  3. Легко переносится часть логики с серверной на клиентскую часть.
  4. Свобода в верстке и в наборе control-элементов (кнопок, меню, списков, таблиц).

Есть, однако, и недостатки, что-то работает не лучшим образом, а потому, если в системе важны определенные компоненты, Flash использовать пока нецелесообразно. Собственно, список тех компонентов, которые на данный момент "не дружат" с Flash:

  1. Сложные математические операции на клиентской части.
  2. Работа с очень сложными структурами данных на клиентской части.
  3. Мелкие тексты, написанные по-русски, из-за проблемы с кодировкой.
  4. Сайты со сверхсложной бизнес-логикой, требующие мгновенной загрузки.
  5. Механизмы, требующие работы с файловой системой клиента или его устройствами (например, web-камерой или микрофоном).

Вот, пожалуй, и все трудности. Но! Если в столь ожидаемом многими Flash 6 добавится некоторый набор усовершенствований, эти проблемы станут неактуальны. Это набор довольно простых вещей, которые очевидно не сложно сделать:

  1. Кэширование растрированных векторов.
  2. Поддержка Unicode.
  3. Усовершенствование механизма наследования объектов.
  4. Внедрение методов проектной/командной работы.
  5. Отладка Performance and Memory-Use на XML, Math/Data Functions.
  6. Окончательное разделение программирования и дизайна.

Это не так много, разница между Flash 4 и Flash 5 гораздо больше, чем эти изменения. Конечно, и после этого Flash не надо будет применять везде - он все равно останется для "своей" области.

Производительность, поддержка кодировок - эти вопросы уже скоро будут решены. Инструмент будет более четко разделен, а концепция языка скорректирована. Разумеется, Flash 6 по-прежнему будет поддерживать разработанные на Flash 5 продукты.

Многие описанные проблемы решаются уже сегодня:

  1. Проблема с текстом решается подгрузкой шрифта, как внешней библиотеки. Он становится четким и быстрым. Единственное, его надо подгрузить один раз - 30 килобайт.
  2. Проблемы в разработке решаются путем четкого структурирования, как данных, так и графики.
  3. Применение объектно-ориентированных подходов в программировании позволяет устранить сложность с псевдо-многопоточностью.
  4. Специализированные метки позволяют работать даже с невидимыми символами.

Большая часть трудностей решается некоторой наработкой общих методов и правил работы. Создание некоторого набора механизмов, как на серверной части, так и на Flash, позволяет выходить на принципиально другой уровень программирования.

Что мы имеем в результате? Пятая версия продукта Macromedia и введенные в нее новшества позволяют говорить о Flash уже не просто как о средстве анимации, но как о полноценном инструменте для создания интерактивных интернет-систем. Существуют задачи, когда именно Flash позволяет построить систему с необходимой степенью интерактивности, с нужными возможностями и функциями. Это непривычно, это часто приводит в замешательство, и, тем не менее - это так, и за этим - будущее.

* * *

Статья основана на материалах проекта REFLASH (www.reflash.ru)

В качестве иллюстрации к возможностям Flash 5 при создании интерактивных систем рекомендуется демо-версия веб-магазина, полностью реализованного на технологии Flash 5 (http://shop.subpixel.com).

Об авторе.

Максим Косенко - Исполнительный Директор компании Subpixel http://www.subpixel.com. Соавтор и главный редактор проекта Reflash http://www.reflash.ru. Специалист по технологическому анализу. Опыт коммерческого применения интернет-технологий с 97го года.