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