Flash 5 - новые возможности
Начну с определения, возможно, несколько неожиданного для многих, но дающего направление всему дальнейшему разговору: "Flash 5 - язык программирования нестандартных интерфейсов с векторной анимацией".
Здесь делается основной упор на то, что интерфейсы нестандартны. Что имеется в виду, зачем это нужно и к чему это ведет?
"Нестандартные" интерфейсы имеют ряд отличий от "стандартных" (под "стандартными" подразумеваются привычные интерфейсы HTML):
- Специальные управляющие объекты (кнопки, панели, блоки). Для примера, рулетка в Microsoft Word - нестандартный объект. Ее практически невозможно реализовать в HTML, только картинку, но не интерактивную функциональность.
- Независимое размещение объектов, другими словами, не размещение объектов относительно друг друга, а расположение по координатам и уровням. В DHTML такая возможность существует, но в DHTML надежно реализовать можно только совсем простые вещи.
- Прозрачное взаимодействие с любым объектом. Т.е. все объекты равны, не складывается ситуация, когда часть принадлежит системе, часть вашему коду, и т.д., и при этом набор обрабатываемых событий один для всех.
В результате подобной "нестандартности" появляется полная свобода в создании интерактивного интерфейса, более удобного, более наглядного, более функционального. Это реально повышает уровень предоставляемого сервиса. А значит, достигается "customer satisfaction" (удовлетворение посетителя), и, в конечном итоге, система становится более конкурентоспособной.
И именно Flash 5 дает возможность делать такие интерфейсы принципиально проще, чем любой другой инструмент, который можно всерьез рассматривать как сколько-нибудь значимую рыночную технологию.
Разработчики, попробовавшие программировать в среде Flash 5, подтвердят мои слова: Flash - уже не просто технология для создания анимационных роликов. Другими словами, Flash стал применим для создания интерактивных приложений.
Резонно задаться вопросом: а оно надо? Есть ли смысл использовать Flash 5 там, где он никогда не использовался? Ведь "несть числа" всевозможным языкам программирования, описывающим клиентскую часть. А Flash, к тому же, - один из самых медленных.
Здесь важно понять, что существует два принципиальных условия применения Flash:
- Надо аккуратно выбирать область применения Flash за пределами анимации.
- Этим инструментом надо уметь грамотно пользоваться.
С первым условием достаточно просто: Flash нужен там, где нестандартный интерфейс дает много новых возможностей, где нужна интерактивность, где не подходит "спартанская" внешность. При совпадении всех этих требований имеет смысл задуматься об использовании Flash 5 в качестве инструмента для построения системы.
Чем определяется "грамотность" применения Flash 5? Необходимо определиться, каковы преимущества использования именно Flash в конкретном проекте, и с какими "подводными камнями" придется столкнуться.
Основные плюсы программирования в среде Flash 5 - в процессе разработки:
- Почти каждая аккуратно запрограммированная функция сразу очевидно полезна во многих местах.
- Возможно построение универсального сервера.
- Легко переносится часть логики с серверной на клиентскую часть.
- Свобода в верстке и в наборе control-элементов (кнопок, меню, списков, таблиц).
Есть, однако, и недостатки, что-то работает не лучшим образом, а потому, если в системе важны определенные компоненты, Flash использовать пока нецелесообразно. Собственно, список тех компонентов, которые на данный момент "не дружат" с Flash:
- Сложные математические операции на клиентской части.
- Работа с очень сложными структурами данных на клиентской части.
- Мелкие тексты, написанные по-русски, из-за проблемы с кодировкой.
- Сайты со сверхсложной бизнес-логикой, требующие мгновенной загрузки.
- Механизмы, требующие работы с файловой системой клиента или его устройствами (например, web-камерой или микрофоном).
Вот, пожалуй, и все трудности. Но! Если в столь ожидаемом многими Flash 6 добавится некоторый набор усовершенствований, эти проблемы станут неактуальны. Это набор довольно простых вещей, которые очевидно не сложно сделать:
- Кэширование растрированных векторов.
- Поддержка Unicode.
- Усовершенствование механизма наследования объектов.
- Внедрение методов проектной/командной работы.
- Отладка Performance and Memory-Use на XML, Math/Data Functions.
- Окончательное разделение программирования и дизайна.
Это не так много, разница между Flash 4 и Flash 5 гораздо больше, чем эти изменения. Конечно, и после этого Flash не надо будет применять везде - он все равно останется для "своей" области.
Производительность, поддержка кодировок - эти вопросы уже скоро будут решены. Инструмент будет более четко разделен, а концепция языка скорректирована. Разумеется, Flash 6 по-прежнему будет поддерживать разработанные на Flash 5 продукты.
Многие описанные проблемы решаются уже сегодня:
- Проблема с текстом решается подгрузкой шрифта, как внешней библиотеки. Он становится четким и быстрым. Единственное, его надо подгрузить один раз - 30 килобайт.
- Проблемы в разработке решаются путем четкого структурирования, как данных, так и графики.
- Применение объектно-ориентированных подходов в программировании позволяет устранить сложность с псевдо-многопоточностью.
- Специализированные метки позволяют работать даже с невидимыми символами.
Большая часть трудностей решается некоторой наработкой общих методов и правил работы. Создание некоторого набора механизмов, как на серверной части, так и на Flash, позволяет выходить на принципиально другой уровень программирования.
Что мы имеем в результате? Пятая версия продукта Macromedia и введенные в нее новшества позволяют говорить о Flash уже не просто как о средстве анимации, но как о полноценном инструменте для создания интерактивных интернет-систем. Существуют задачи, когда именно Flash позволяет построить систему с необходимой степенью интерактивности, с нужными возможностями и функциями. Это непривычно, это часто приводит в замешательство, и, тем не менее - это так, и за этим - будущее.
* * *
Статья основана на материалах проекта REFLASH ()
В качестве иллюстрации к возможностям Flash 5 при создании интерактивных систем рекомендуется демо-версия веб-магазина, полностью реализованного на технологии Flash 5 ().