Автор статьи:
Начну с определения, возможно, несколько неожиданного для многих, но дающего направление всему дальнейшему разговору: «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).