Стороженко Иван Витальевич
Тема выпускной работы: Разработка графического интерфейса и специальных программных модулей для донецкого портала Евро-2012
Руководитель: профессор, д.т.н, Аверин Геннадий Викторович |
Технология Flash основана на использовании векторной графики в формате Shockwave Flash (SWF) разработанная компанией Macromedia®. Это далеко не первый векторный формат, но именно его создателям удалось найти наиболее удачное сочетание между изобразительными возможностями графики, инструментальными средствами для работы с ней, а также механизмом включения результата в Web-страницы. Основным преимуществом Flash технологии является его межплатформенность, то есть этот формат может использоваться на любой аппаратно-программной платформе (в частности, как на компьютерах Macintosh, работающих под управлением операционной системы MacOS, так и на компьютерах IBM с ОС Windows). И еще одна весомая особенность Flash технологии: созданные на его основе изображения могут быть не только анимированы, но еще и дополнены интерактивными элементами и звуковым сопровождением.
История Flash началась тогда, когда маленькая фирма Future Wave выпустила простенький редактор для векторной графики на графических планшетах. В 1996 г. была добавлена возможность анимации, а саму программу переименовали в FutureSplash Animator. Вместе с программой был выпущен также специальный плагин, с помощью которого можно было просматривать созданные мультфильмы в веб-браузере.
Векторная анимация через плагин в браузере — это было довольно интересное техническое решение, которое сразу привлекло внимание крупных игроков. Самым смелым и щедрым из них оказалась Macromedia, которая выпускала инструменты для создания веб-приложений. Она купила компанию Future Wave в декабре 1996 г. и сразу же переименовала программу во Flash 1.
Спустя десять лет плагин Flash Player установлен почти повсеместно. По статистике NPD Online, он работает на 98% всех компьютеров, подключенных к интернету. Не так давно была выпущена версия Flash Player под Linux (эта версия активно развивается), так что теперь плагин доступен на всех популярных платформах.
В конце прошлого года Adobe купила компанию Macromedia. В честь десятилетия замечательной технологии Adobe открыла специальный микросайт, приуроченный к юбилею.
Майк Доуни (Mike Downey), главный менеджер Adobe по линейке продуктов Flash в интервью Wired рассуждает об истории и перспективах этой технологии. Первым поворотным пунктом на пути превращения Flash из пакета анимации в универсальную платформу для веб-приложений Майк Доуни считает выход четвертой версии Flash с поддержкой скриптов. Это позволило разработчикам впервые создавать игры, интерактивные презентации и полноценные программы на базе Flash.
В пятой версии скриптовый движок был переписан и переименован в ActionScript. До сих пор он остается главной, самой важной функцией программы.
Еще одним важным моментом в истории развития Flash была поддержка видео в шестой версии. Благодаря этому Flash сегодня стал основной платформой для видеовещания в Сети. На ней работают крупнейшие видеосайты интернета, такие как YouTube, Google Video и MySpace.
В июне 2006 г. был выпущен Flash Player 9 с новой версией скриптового движка, а также среда для веб-разработки Adobe Flex 2, во многом дублирующая функциональность Ajax.
Если смотреть в будущее, то компания Adobe уверена, что веб-разработчики будут создавать все больше интерактивных специализированных сайтов, для которых платформа Flash подходит как нельзя лучше. Вот уже шесть лет Adobe пытается портировать Flash на мобильные устройства, и, наконец-то, достигла здесь значительного прогресса. Недавно было подписано соглашение с Qualcomm, согласно которому поставщики контента получают право устанавливать Flash Player на любое портативное BREW-устройство.
Компания продолжает работать на перспективу. Сейчас примерно на полпути находится процесс создания дизайнерского пакета следующего поколения под кодовым названием Adobe Blaze. Главной задачей при его создании является тесная интеграция с другими программами Adobe. Компания недавно провела исследование и выяснила, что 90% разработчиков под Flash используют одновременно и программу Adobe Photoshop. Кроме того, Blaze будет интегрирован также с Flash, Illustrator и After Effects. Как уверяет Майк Доуни, это будет нечто потрясающее [1].
Особенностью технологии Flash является тот факт, что она вполне может заменить обыкновенную страницу, написанную на html. Но здесь открываются существенные преимущества технологии Flash перед языком HTML.
Интересны возможности языка ActionScript, а также интеграция его и самого конечного продукта с другими языками программирования и базами данных. Конечный продукт - это так называемый flash-ролик, которые представляет собой элемент active-x, который существует как самостоятельное приложение, и который, встраивается в html-документ по средствами включения его в тело документа как объекта active-x. Разумеется, для проигрывания такого ролика от браузера потребуется наличие установленного plug-in'а, но это не является проблемой, т.к. почти всё браузеры уже имеют предустановленный flash-plug-in, а если такового всё же в системе не имеется, то произойдёт автоматическая его загрузка с сервера производителя. Для достижения более сложной интерактивности Flash может взаимодействовать с JavaScript или VBScript.
Организация ссылок внутри flash-ролика может происходить как обычно, т.е. пряма ссылка на какой либо документ/cgi-шлюз, либо ссылка может приводить к загрузке новых роликов, которые могут содержать данные, и которые будут являть аналогом документов, загружаемых по щелчку на обыкновенную html-ссылку. Ссылка на другие ролики происходит внутри ролика, текст ссылки не покидает пределов ролика, его нельзя скопировать, либо просмотреть в строке состояния. Также перемещение по таким ссылками не будет вызывать перезагрузку главной страницу, в которую вставлен flash-ролик (разумеется, если не указаны специальные инструкции в самом ролике). Также как и в фреймовом представлении документа (перезагружается содержание фреймов) , здесь перезагружается/догружается только сам ролик. Причём загружаемый ролик может находиться и на другом сервере - пользователь об этом никогда не узнает.
Технология FLASH средствами языка ActionScript позволяет обращаться непосредственно к любому cgi-шлюзу изнутри ролика, при этом скрывая от пользователя место обращения и сам запрос. Пожалуй, единственный недостаток данного метода - это ограниченность принимаемой от шлюза информации, т.е. flash-ролик не сумеет интерпретировать код html, части которого обычно встречаются в ответе на запрос к cgi-программе, зато без труда можно оперировать с простой текстовой информации. Конечно, функциональную ограниченность технологии FLASH можно расширить, написав на встроенном языке ActionScript дополнительные модули разбора и парсинга ответов cgi-программ (например, модуль интерпретации html внутри flash-ролика).
Технология Flash позволяет разрабатывать полноценные интерактивные сайты. Во Flash сайтах можно сделать отличный от других сайтов дизайн и навигацию, легко организовать диалог с пользователем. Если перед веб-мастером стоит задача преподнести небольшое количество, например рекламной информации, в наилучшем виде, то он должен знать хотя бы основы Flash [2].
Программисты часто неоправданно проходят мимо возможностей, открываемых Flash, поскольку уже имеют в своем распоряжении достаточно мощных средств. Дизайнеры иногда просто не догадываются, что Flash можно применять не только для создания intro, меню и красивых элементов дизайна сайта. Таким образом, эта статья - для тех, кто не ленится добавлять в свой арсенал новые средства и не боится браться за изучение новых инструментов.
В ходе строительства Web-узла постоянно приходится решать проблему выбора той или иной технологии. Окончательный выбор зависит, как правило, от двух факторов: поставленной задачи и арсенала средств, которым владеет разработчик или команда разработчиков.
Можно выделить три подхода к решению задач программирования для сети: либо приложение выполняется целиком на машине клиента, не обращаясь к серверу, либо такое приложение выполняет лишь часть операций, а прочие остаются серверу, либо практически всю работу выполняют серверные программы.
Решение некоторых задач на стороне сервера бывает предпочтительнее, а иногда просто не имеет альтернативы. Но программисты всегда стремились снизить нагрузку на сервер.
Нужно четко понимать, что Flash не создавался для программирования больших приложений. ActionScript четвертой версии весьма неуклюж с точки зрения любого сведущего в программировании. Основное его предназначение - управление последовательностью проигрывания фильма, подгрузка ресурсов с сервера, обработка взаимодействия фильма и пользователя. В этом языке отсутствуют средства создания и работы с массивами, обработка математических функций; весьма скромны средства работы со строками. Уже в пятой версии язык кардинально изменился и стал похож на большинство других языков программирования для Интернета.
Итак, основную нишу в программировании клиентских приложений, в которой у технологии Flash нет конкурентов, можно определить как небольшие приложения с несложными математическими вычислениями и разбором текста, где требуется уникальный интерфейс, а время разработки ограничено. Это различные калькуляторы, экзаменующие или обучающие ситемы, игры, средства для построения графиков, несложных чертежей (здесь не касаемся приложений, которые не могут обойтись без взаимодействия с сервером) и т.д.
Применение Flash для таких приложений открывает для дизайнера массу возможностей (ограниченных только его фантазией) при создании пользовательского интерфейса. Вместо того, чтобы соединять несколько технологий в решении одной задачи, можно все делать в одной программе - редакторе фильмов Flash и тут же отлаживать полученный результат. Причем, по данным фирмы Macromedia, у почти 95% пользователей Интернета уже установлен плейер для воспроизведения flash-фильмов [3].
Flash-приложения создаются с помощью ActionScript (последняя версия 3.0) — языка программирования. Если исходник не содержит в себе инструкции языка, то при компиляции в любом случае генерируется некоторый базовый код на ActionScript (это можно увидеть просмотрев Flash-байткод). Далее соответственно существует базовый клип на сцене, унаследованный от MovieClip класса, который и начинает воспроизводиться. Среда Adobe Flash ориентирована в большей мере на дизайнеров, аниматоров, хотя и имеется возможность писать полноценный код. Flex Builder, FDT, ориентированы на программирование, и там нет специальных инструментов интерфейса для анимации, визуализации.
При создании продукта можно использовать медиа, звуковые и графические файлы, можно создавать интерактивные интерфейсы и полноценные веб-приложения с использованием PHP и XML [4].
3D-объекты всегда привлекали внимание своей красочностью, динамичностью, возможностью увидеть изображение на дисплее с разных сторон. Трехмерные Flash-объекты завоевывают все большую популярность в заставках, в навигации интернет-страниц, в CD-презентациях.
В последнее время Flash-технологии довольно быстро развиваются. Область применения их очень обширна: если раньше Flash использовался в основном для украшения интернет-страничек симпатичными, «легкими» анимационными вставками, при создании баннеров, реже — интерактивного наполнения сайтов, то сейчас, используя Adobe Flash , можно создавать игры, даже трехмерные, а также полноценные программы для обучения и тестирования, не говоря уже о презентационных дисках, базах данных и т.д. Увеличение пропускной способности интернет-каналов, относительная дешевизна трафика — все это позволяет обогащать «флэшку» новыми элементами.
Для воплощения в жизнь этого смелого замысла нам нужны три программы — 3DS Max любой версии, Swift 3D 3.00 и Macromedia Flash начиная с пятой версии. Почему именно эти? Дело в том, что в 3DS Max мы можем создать любой или почти любой объемный объект, чтобы импортировать его в Flash. В Swift 3D 3.00 мы можем создавать только простые объекты (куб, конус и т.д.) или несложные формы (с помощью Extrusion Editor или Lathe Editor), анимировать их и менять цвет. Зато именно эта программа нам пригодится для экспорта и подготовки к экспорту объекта в .swf- или в .swft-файл [5].
Серьезные инструменты для работы с Flash – одна из самых больших проблем в Linux. Их попросту нет. Есть простая, написанная на Java, программа DrawSWF, которая позволяет создавать flash-анимацию. Но сравнивать ее с Adobe Flash – все равно, что сравнивать Paint и Photoshop.
Интерфейс программы составляют два окна: главное (с панелью инструментов, меню и получаемым изображением) и «Drawing Objects» (со списком присутствующих элементов и их параметрами). Набор стандартных инструментов в DrawSWF весьма скромный – обычный карандаш для рисования по пикселям и элементарные геометрические фигуры: прямые, прямоугольники и эллипсы. Можно вставлять произвольный текст и картинки в форматах JPEG, PNG или GIF, поддерживается работа с шаблонами. Все параметры (координаты местоположения, цвета контура/фона, толщина обводки и т. п.) каждого созданного объекта поддаются корректировке, а сам объект может быть индивидуально удален. Результат получаемой анимации просматривается с помощью кнопок play/stop.
С проигрыванием flash-анимации проблем нет. Существует версия Adobe Flash Player 9, созданная специально для Linux. С 3D в Linux дела обстоят несколько лучше, чем с Flash. Полноценных аналогов таким «монстрам», как 3D Studio MAX и Maya, пока нет, но есть программа, которая обладает вполне достаточным для небольших проектов набором возможностей – Blender [6].
Приведем некторые примеры создания «мультяшных» и технических 3D объектов во Flash.
Мой личный опыт работы начинался с Flash MX. На первом курсе участвовал в мультимедийном конкурсе «Join Multimedia 2005», который проводит концерн Siemens в рамках программы «Молодежь и знания». В этом состязании ежегодно принимает участие молодежь из многих европейских стран. Возглавив команду «GameStream» из 7 человек, в мае 2005 проект был успешно сдан. В ходе реализации проекта были приобретены навыки работы в программных продуктах работы с графикой таких как: Macromedia Flash, Photoshop, Corel Draw. Позже научился работать с 3D графикой, в программном продукте 3D MAX.
С июля 2005 года закончив первый курс, начал работать в московских фирмах ЭВЦ «Специнжиниринг» и НТЦ «Пожнефтегазпроект-М» специалистом по информационным технологиям. За годы работы было создано множество презентаций, программных продуктов, автоматизированных систем в сфере ликвидации и предупреждения аварийных разливов нефти и нефтепродуктов на основе технологии Adobe Flash.
Adobe Flash - революционная по своим возможностям система, предоставляющая невиданную доселе свободу творчества. Являя собой уникальный синтез графики, анимации и программирования, она позволяет легко справляться с невероятно сложными для более традиционных технологий задачами. Освоив Flash, вы сможете создавать баннеры, собственные игры, мультфильмы, презентации: Однако не стоит возводить Flash в культ, слепо веря, что с его помощью можно решить абсолютно все проблемы. Flash -всего лишь один из инструментов, такой же, как HTML, JavaScript или CSS. Каждая из этих технологий может эффективно решать свои узкие задачи.
1. Технология Flash. [Электронный ресурс] : http://habrahabr.ru/blogs/columns/4239/
2. Клуб программистов. Особенности технологии Flash. [Электронный ресурс] : http://www.programmersclub.ru/alar-technology-flash/
3. Компьютерная документация от А до Я - Flash. Программирование клиентских приложений с использованием Macromedia Flash. [Электронный ресурс] : http://www.compdoc.ru/internet/flash/prog_client_app/
4. Свободная бибилиотека - "Википедия". [Электронный ресурс] : http://ru.wikipedia.org/wiki/Adobe_Flash
5. Все про ActionScript в деталях и не только. Объемный Flash - Углубленное программирование - SmartSection. [Электронный ресурс] : http://actionscript.com.ua/modules/smartsection/item.php?itemid=78
6. ПО для Linux: графика, flash и 3D. [Электронный ресурс] : http://it.vahu.ru/articles/grafika.html