Территория Flash/Flex

Да, на протяжении некоторого времени мы особое внимание уделим технологиям Flash/Flex, можно сказать, "внедримся" в эту интереснейшую тусовку программистов, дизайнеров, художников, аниматоров и так далее. Ведь на самом деле мы говорим не о каком-нибудь невзрачном продукте, а о мощном современном инструменте производства, результаты работы в котором вы сейчас часто можете, даже и не подозревая того, увидеть в огромном количестве рекламных роликов по ТВ, музыкальных видеоклипах, компьютерных играх, web-сайтах и специальных приложениях, интернет-рекламе. В общем, обсуждаемых вопросов может быть очень много. Начнем, пожалуй, с программирования. Почему? Есть две причины, первая - сейчас появился особый спрос на программистов во Flex, во-вторых, сегодня активно внедряется новый стандарт веб-документов MXML. То есть, будем "снимать пенку", хотя все должно происходить постепенно. Приступим...

В последнее время не трудно заметить, что множество web-страниц, графических интерфейсов ПО и игр стали очень хорошо графически исполненными и весьма динамичными. В обоих случаях все реже можно увидеть шаблонный подход и использование стандартных компонент, а также вообще можно сказать, что сейчас грань между сайтами и программами постепенно стирается. То есть, на данный момент, если говорить глобально, то мы живем в переходный период. В прошлом году была выпущена новая версия объектно-ориентированной среды разработки Adobe FLEX 2, причем это событие можно считать одним из самых ярких для 2006-го.

В рамках данной небольшой серии материалов мы рассмотрим основные особенности данного продукта, описание рассчитано на людей, знакомых с понятием ООП, а лучше имеющих опыт в этой сфере. А, начнем мы, пожалуй, с рассмотрения языка ActionScript, который перекочевал во Flex из... да, как догадались многие, из очень известного продукта Macromedia Flash. И для того, чтобы быть последовательными в своем повествовании, мы начнем описание со второй версии ActionScript, которая уже присутствовала во Flash8/Flash MX. Именно с этого момента об ActionScript стали говорить как о полноценном языке программирования (до этого данный язык просто выполнял функции описания сценариев для клипов), а сам Flash начал рассматриваться с двух сторон - чисто графической и чисто программистской. То есть, произошло разделение, о котором обязательно нужно упомянуть перед описанием Flex'a.

Все же будем последовательными и рассмотрим пока основные функциональные возможности и структуру второго ActionScript'а, а потом перейдем на третий.


ActionScript 2. Введение

По ООП написано достаточно много книг, но мне понравилось, как об этом сказал некогда Чарльз Калверт (автор энциклопедий по Delphi и C++ Builder), уместив все буквально в несколько абзацев. Объектно-ориентированная модель - это совокупность объектов и их свойств, причем они нанизываются на спираль, в конце концов сходящуюся в одну точку - конечный продукт. Каждый объект описывается рядом свойств, и ему соответствует определенный набор процедур, то есть методов, которые можно к нему применить. Например, открыв любой профессионально сделанный клип с программированием и обратив внимание на те же кнопки, вы можете увидеть, что они реагируют на поднесение указателя мыши, нажатие и т.п.

А если посмотрите на сам код в ActionScript, то увидите, прежде всего, список объектов и методов, записанных путем так называемой "точечной нотации", то есть, самый простой пример:

Button1. OnPress () (описание событий, которые происходят по нажатии на кнопку Button1).

Такой метод записи достаточно часто можно встретить в современных объектно-ориентированных языках программирования, причем наиболее близким будет JavaScript, но тут стоит отметить, что изначально ActionScript 2 привязан к клипу, то есть, дополнительно к определенным событиям (например, тем же кадрам), которые происходят в его рамках. Это несколько отлично от привычных нам вариантов, где основная привязка идет к графическому интерфейсу (или же web-документу), в которых предусмотрена другая иерархия. Хотя в последнее время ActionScript часто используется как и другие объектно-ориентированные языки - весь интерфейс можно создать там в рамках только одного ("нулевого" или "первого") кадра в программном коде, хотя на самом рабочем столе будет чистый лист бумаги, то есть ничего.

Этим и стали пользоваться программисты, особенно пришедшие с других языков и не совсем разбирающиеся в тонкостях флэша.

Многие могут спросить, а почему Adobe не перейти на развитый и популярный JavaScript, а вместо этого они обновляют и эксплуатируют ActionScript. Тут сразу несколько моментов, которые нужно отметить отдельно:

  1. Если вы внимательно посмотрите на любую профессиональную программу, особенно связанную с 3D-анимацией и т.п., то наверняка найдете в ней собственный скрипт, который позволяет делать программирование только в рамках заданной оболочки. В принципе, так ActionScript и появился, то есть как служебный язык.
  2. Многие сейчас подумают, что я скажу во втором пункте о "независимости" продукции Adobe от изменений в Java. В этом, конечно, есть доля правды, но с помощью ActionScript Adobe может вводить сколь угодно ограничений. Например, для меня было большим удивлением узнать, что в этом языке не предусмотрена функция создания и сохранения файлов на жесткий диск пользователя компьютера (кроме служебных, где есть множество ограничений). С одной стороны, это не очень удобно, поскольку, например, хотелось бы формировать отчеты, html-файлы и т.п., а с другой - пользователь защищен от того, что на его компьютер при просмотре той же анимации не установится какой-нибудь вирус.

В принципе, ActionScript и JavaScript очень похожи и потому, что имеют единую основу, а именно: стандарт ECMAScript - скриптовый язык, созданный Европейской ассоциацией производителей компьютеров (ЕСМА). Поэтому переходить с одного на другой достаточно просто.

В следующем выпуске:

  • Описание интерфейса Flash
  • Программа "Hello, world!"
  • Создание интерактивной анимированной кнопки

Кристофер,
[email protected]

Версия для печатиВерсия для печати

Номер: 

08 за 2007 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!