Архив рубрики «Часть 1 Руководства по ActionScript.»
Руководство по actionscript. часть 1, стр. 001
ActionScript 3.0 для Flash
Подробное руководство
Колин Мук
Adobe
«Это новая книга Колина Мука». Данной фразы будет достаточно, чтобы в книжные магазины выстроились очереди из флэшеров. Не было и нет автора, который бы по авторитету и влиянию мог равняться Муку. Он был первым, кто написал достойную книгу по ActionScript сразу же после появления этого языка в далеком 2001 году. ActionScript стремительно развивался, превращаясь в полноценный объектно-ориентированный язык. И неизменную помощь в освоении очередных революционных нововведений начинающим и опытным флэшерам по всему миру оказывали книги Колина Мука.
Казалось бы, еще совсем недавно всех поразил ActionScript 2.0, в котором появились все особенности объектно-ориентированного языка. Однако по своей сути это оставался старый добрый ActionScript 1.0, что проявлялось в формальности многих возможностей. Эти недостатки исчезли в ActionScript 3.0, который стал мощнее, удобнее, строже, быстрее. Данная книга, будучи лучшим руководством по ActionScript 3.0, объединяет в себе достоинства своих предшественниц — «Essentials Action-Script 2.0» и «ActionScript for Flash MX: The Definition Guide». В ней рассматриваются как фундаментальные основы языка и ключевые идеи объектно-ориентированного программирования, так и конкретные возможности по управлению содержимым Flash-приложений. Уникальный авторский стиль, множество реальных примеров, грамотный перевод — все это позволит освоить ActionScript 3.0 быстро и легко.
Предисловие
Мы мечтаем о мире, в котором любое цифровое взаимодействие — в классе, офисе, квартире, аэропорту или машине — превращается в мощную, простую, эффективную и занимательную операцию. Для реализации подобных возможностей широко применяется приложение Flash Player, которое превратилось в сложную платформу, поддерживаемую различными браузерами, операционными системами и устройствами…
Продолжение:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,
77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,
110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,
Руководство по actionscript. часть 1, стр. 002
Один из основных стимулов для появления новаторских решений корпорации Adobe и разработки приложения Flash Player состоит в том, что разработчики постоянно расширяют границы реализуемых возможностей — эти возможности впоследствии становятся достоянием других разработчиков.
Если бы с помощью машины времени мы могли вернуться в 2001 год, мы бы обратили внимание на широкое распространение Интернета и первые свойства сайтов, содержащих не только страницы, но и интерактивные приложения. Эти приложения в основном использовали HTML-формы и полагались на веб-серверы, обрабатывавшие полученную информацию. Группа специалистов работала над реализацией более быстрого механизма взаимодействия, используя преимущества обработки данных на стороне клиента с помощью языка ActionScript технологии Flash. Одним из самых ранних примеров успешных интерактивных приложений была система бронирования номеров для отеля Broadmoor Hotel — вместо многостраничных HTML-форм в ней использовался одноэкранный, полностью интерактивный интерфейс, позволивший увеличить объем бронирования через Интернет на 89 %.
Очевидно, что скорость имеет значение. Она обеспечивает гораздо более эффективное и впечатляющее взаимодействие. Однако в 2001 году существовало множество проблем с производительностью, возможностями языка сценариев, простотой отладки и ограничениями дизайна в браузерах (которые создавались для просмотра страниц, а не для выполнения других приложений).
В своей компании мы провели множество «мозговых атак» и активно беседовали с разработчиками, и в итоге было решено приступить к реализации данного направления, получившего название «Многофункциональные интернет-приложения» (RIA — Rich Internet Applications). Для лучшей поддержки RIA-приложений мы должны были создать следующее.
Руководство по actionscript. часть 1, стр. 003
Гораздо более быструю виртуальную машину в приложении Flash Player для языка ActionScript 3.0.
? Платформу разработки под названием Flex, значительно упрощающую разработку RIA-приложений.
? Среду, которая позволяла бы раскрыть все возможности многофункциональных интернет-приложений, — теперь она называется Adobe Integrated Runtime (AIR). В эпоху активного развития интернет-проектов мы зацепились за идею реализации этого будущего мира многофункциональных веб-приложений.
Мы продолжали инвестировать средства в создание целого ряда технологий и готовились к моменту, когда эта инновация станет востребованной. Затраты на иннова-
цию восполнились в полном объеме, и я счастлив наблюдать за появлением многофункциональных интернет-приложений вместе с технологией Web 2.0. Применяя множество технологий и платформ, разработчики создают приложения, которые предоставляют доступ к потенциалу Интернета, позволяют использовать преимущества HTML, Flash, Flex и AJAX и размещать одну часть логики приложения на клиенте, а другую — на сервере.
Вместе с приложением Flash Player 9 была разработана новая виртуальная машина, позволяющая значительно увеличить скорость выполнения приложений на языке ActionScript 3.0 и реализующая самые последние требования стандарта ЕСМА для языка (JavaScript основан на этом же стандарте). По соглашению с сообществом Mozilla Foundation был открыт исходный код этой современной реализации (проект Tamarin), что позволило создателям приложения Flash Player сотрудничать с инженерами Mozilla с целью оптимизации виртуальной машины и реализации самых последних стандартов. Этот базовый движок выполнения сценариев со временем будет встроен в браузер Firefox, обеспечивая совместимость сценариев в HTML и Flash.
Кроме того, появилась платформа Flex, которая обеспечивает быструю разработку приложений с помощью распространенных шаблонов для взаимодействия и управления данными, а вся платформа встроена в язык ActionScript 3.0. Платформа разработки Flex доступна бесплатно и содержит исходный код, благодаря чему вы можете точно узнать, как она работает. Для написания кода, использующего возможности платформы Flex, можно применять любой редактор. Существует также специальная среда IDE под названием Adobe Flex Builder.
Руководство по actionscript. часть 1, стр. 004
Наблюдая за появлением инноваций в Интернете, мы решили объединить усилия корпорации Adobe и компании Macromedia. В то время как компания Macromedia занималась развитием RIA-приложений на основе технологии Flash, корпорация Adobe вносила изменения в алгоритм передачи электронных документов и в другие области. Со временем мы увидели, что компания Macromedia собирается добавить поддержку электронных документов в RIA-приложения, а корпорация Adobe — наоборот, ввести возможности RIA-приложений в электронные документы. Чтобы не идти разными путями к одной цели и не изобретать заново велосипед, мы объединили усилия для реализации нашего видения следующего поколения документов и RIA-приложений, совместив лучшую мировую технологию для электронных документов и самую распространенную технологию для RIA-приложений. Это невероятно мощная комбинация.
После объявления об объединении наших компаний мы создали команду «чистой комнаты», чтобы разработать планы относительно нашего следующего поколения программного обеспечения, заимствуя все, что узнали до этого момента, а также потенциал объединения технологий Flash, PDF и HTML в новой среде Adobe AIR для RIA-приложений.
Проект AIR на самом деле является нашей третьей попыткой создать эту новую среду. Первые две попытки были частью экспериментального проекта Central под кодовыми названиями Mercury и Gemini (космическая программа Соединенных Штатов) и проекта AIR под кодовым названием Apollo. Мы узнали многое из этих проектов, и, о чем я люблю напоминать команде, экипаж Apollo первым высадился на Луну.
Руководство по actionscript. часть 1, стр. 005
Среда AIR позволит вам использовать существующие навыки веб-разработки (Flash, Flex, HTML, JavaScript, AJAX) для создания и распространения RIA-приложений в виде настольных приложений. Как и в случае с публикацией интернет-приложений, позволяющей любому разработчику с базовыми знаниями языка HTML создать сайт, среда AIR позволит любому разработчику с базовыми навыками веб-разработки создать настольное приложение.
Как разработчик, вы можете теперь входить в более близкий контакт с вашими пользователями. Использование браузера подразумевает быструю, отчасти непрочную связь с ними. Они открывают страницу и затем уходят. Среда AIR позволяет вам создавать приложения, которые могут поддерживать связь с пользователями длительное время. Как и любое настольное приложение, приложения AIR имеют значок на Рабочем столе, в меню Пуск операционной системы Windows или на панели инструментов операционной системы Mac OS X. Кроме того, когда вы выполняете веб-приложение, оно существует в отдельном от вашего компьютера мире. Вы не можете просто интегрировать локальные данные в свое приложение. Например, вы не можете просто перетащить контакты из программы Outlook в приложение с картой, чтобы получить маршрут к дому вашего друга. Хотя это можно сделать с помощью приложений AIR, которые создают мост между вашим компьютером и Интернетом.
Я верю, что среда AIR — это начало нового измерения. Эти приложения интересно создавать. Начав раньше, вы сможете реализовать в своих приложениях такие возможности, которых еще нет у других, особенно это касается улучшения представления вашего приложения на компьютере и установления связи между Интернетом и настольным приложением.
Руководство по actionscript. часть 1, стр. 006
Основой RIA-приложений является язык ActionScript независимо от того, выполняются они во Flash Player в браузере, в виде настольного приложения в среде AIR или на мобильных устройствах. Каждое поколение языка ActionScript подробно описано Колином Муком (Colin Moock) в серии книг издательства O’Reilly — они стали справочниками, которыми пользуется большинство разработчиков на платформе Flash. С языком ActionScript 3.0 вы получаете беспрецедентную мощь для построения привлекательных приложений, а в этом справочнике вы найдете подробное описание эффективного использования этой мощи.
Я хочу увидеть созданные вами шедевры и с нетерпением ожидаю появления приложений следующего поколения. Продолжайте расширять границы возможного в Интернете, чтобы сделать приложения более привлекательными и эффективными для людей во всем мире, а мы будем делать все возможное, чтобы поставлять более выразительные и мощные инструменты, помогая вам в ваших усилиях.
Кевин Линч (Kevin Lynch), ведущий разработчик архитектуры ПО, корпорация Adobe
Сан-Франциско, 2007
Введение
ActionScript является официальным языком платформы Adobe Flash. Изначально ActionScript задумывался как простой инструмент для управления анимацией, но со временем он превратился в полноценный язык программирования, который сегодня используется для создания разнообразного содержимого и приложений для Интернета, мобильных устройств и настольных компьютеров. Основополагающие принципы, заложенные в язык ActionScript, делают его удобным средством решения разнообразных задач для программистов, работающих в разных сферах, и разработчиков содержимого. Например, аниматору нужно написать всего несколько строк кода на языке ActionScript, чтобы остановить воспроизведение анимации. Дизайнеру интерфейса потребуется несколько сот строк кода на языке ActionScript, чтобы добавить интерактивность в интерфейс мобильного телефона. А с помощью нескольких тысяч строк кода ActionScript разработчик приложений может создать полноценную программу для чтения электронной почты, которая будет работать в веб-браузере или автономно.
Руководство по actionscript. часть 1, стр. 007
В этой книге представлена исчерпывающая информация по основам программирования на языке ActionScript, а стиль изложения материала отличается чрезвычайной доходчивостью и точностью. Такая непревзойденная точность и глубина материала являются результатом десятилетнего изучения языка ActionScript, использования практического опыта в области программирования и постоянного контакта с инженерами компании Adobe. Каждое слово этой книги было тщательно проверено — в большинстве случаев по нескольку раз — ключевыми фигурами инженерно-технического персонала компании Adobe, включая команды, работающие над созданием программ Flash Player, Flex Builder и среды разработки Flash. Дополнительную информацию можно найти в разд. «Благодарности».
Для новичков
Если у вас нет опыта программирования, начните чтение книги с главы 1. В ней вы познакомитесь с фундаментальными понятиями языка ActionScript: переменная, методу класс и объект. После этого можете приступать к последовательному изучению остальных глав. Каждая глава базируется на концепциях предшествующих глав, представляя новые темы в виде одного длительного повествования, которое поможет вам овладеть мастерством разработки с использованием языка ActionScript.
Если же вы являетесь дизайнером, который просто хочет узнать, как управлять анимацией в среде разработки Flash, то вполне возможно, что эта книга не для вас. В данном случае ответы на все вопросы вы сможете найти в документации от компании Adobe. Эта книга принесет пользу, когда вы захотите узнать, как добавить в ваше содержимое логику и программируемое поведение.
Руководство по actionscript. часть 1, стр. 008
Профессиональное руководство
Если у вас уже есть опыт программирования на языке ActionScript, эта книга поможет устранить пробелы в ваших знаниях, переосмыслить важные понятия, описанные формальными терминами, и понять сложные темы благодаря простому и точному языку. Считайте данную книгу профессионалом языка ActionScript, сидящим с вами за одним рабочим столом. Вы можете попросить его объяснить тонкости событийной архитектуры языка ActionScript, или распутать лабиринт системы безопасности приложения Flash Player, или продемонстрировать возможности встроенной поддержки языка XML (Е4Х). Кроме того, в этом издании вы можете найти информацию по таким недокументированным возможностям языка ActionScript, как, например, пространства имен, встроенные шрифты, доступ к загруженному содержимому, распространение библиотек классов, сборка мусора и обновления экрана.
Эта книга — настоящее руководство разработчика, содержащее практические пояснения, предупреждения, основанные на глубоком изучении предметной области, и полезные примеры кода, демонстрирующие способы правильного решения той или иной задачи.
Структура книги
Эта книга разделена на три части.
В части I «ActionScript с нуля» представлено подробное описание основ языка ActionScript, включая объектно-ориентированное программирование, классы, объекты, переменные, методы, функции, наследование, типы данных, массивы, события, исключения, область видимости, пространства имен, язык XML. Завершается часть I рассмотрением архитектуры безопасности приложения Flash Player.
В части II «Отображение и интерактивность» представлены методы отображения содержимого на экране и обработки событий ввода. К рассматриваемым темам относится интерфейс прикладного программирования (API) среды выполнения Flash, управляющий отображением содержимого на экране, иерархическая обработка событий, реализация интерактивности с использованием клавиатуры и мыши, анимация, векторная и растровая графика, текст и операции загрузки содержимого.
Руководство по actionscript. часть 1, стр. 009
В части III «Практическое применение ActionScript» основное внимание уделяется вопросам применения кода, написанного на языке ActionScript. В этой части освещаются такие темы, как объединение кода ActionScript с ресурсами, созданными вручную в среде разработки Flash, использование платформы Flex Framework в программе Flex Builder и создание библиотеки пользовательского кода.
В качестве примера на протяжении всей книги создается с нуля и подробно анализируется полнофункциональная программа — виртуальный зоопарк.
Чего нет в этой книге
Экосистема языка ActionScript очень обширна. Охватить весь материал в одной книге просто невозможно. К вопросам, которые заслуживают внимания, но не рассматриваются подробно в этом издании, относятся:
? языкМХМЬ;
? платформа Flex Framework;
? Flex Data Services;
? встроенные компоненты среды разработки Flash;
? Flash Media Server;
? Flash Remoting;
? поддержка регулярных выражений в языке ActionScript.
Информацию по перечисленным вопросам можно найти в документации от корпорации Adobe или на веб-странице Adobe Developer Library издательства O’Reilly по адресу http://www. oreilly. com/store/series/adl. csp.
Привязка к среде разработки
В этой книге рассматриваются базовые концепции программирования на языке ActionScript, применимые к любой среде разработки с использованием языка ActionScript 3.0 и к любой среде выполнения, поддерживающей ActionScript 3.0. По возможности я старался избегать вопросов, касающихся разработки кода с применением какого-либо конкретного инструмента, и уделял основное внимание концепциям программирования, а не использованию того или иного инструмента разработки. И все-таки в гл. 29 описывается использование языка ActionScript в среде разработки Flash, а в гл. 30 рассматриваются основы работы с платформой Flex Framework в приложении Flex Builder. Кроме того, в гл. 7 описывается процесс компиляции программы с использованием различных средств разработки (среды разработки Flash, приложения Flex Builder и компилятора mxmlc).
Сейчас обратим внимание на сам язык ActionScript. В следующих разделах представлена вводная техническая информация, касающаяся языка ActionScript 3.0, которая представляет интерес для опытных программистов. Если у вас нет опыта программирования, ознакомьтесь с разд. «Соглашения об обозначениях» и приступайте к изучению гл. 1.
Руководство по actionscript. часть 1, стр. 010
Обзор языка ActionScript
ActionScript 3.0 представляет собой объектно-ориентированный язык программирования, применяемый для создания приложений и управляемого с помощью сценариев мультимедийного содержимого для воспроизведения в клиентских средах выполнения Flash (например, в приложениях Flash Player и Adobe AIR).
Благодаря синтаксису, напоминающему синтаксис языков Java и С#, базовый язык ActionScript наверняка покажется знакомым опытным программистам. Например, следующая строка кода создает переменную типа in t (этот тип означает целое число) с именем width, которой присваивается значение 25:
var width:int = 25;
Следующий фрагмент кода демонстрирует цикл for с проходом до 10:
for (var i:int = 1: i <= 10: i++) { // расположенный здесь код будет выполнен 10 раз
}
А следующий фрагмент кода создает класс с именем Product:
// Описание класса public class Product {
// Переменная экземпляра типа Number
var price:Number;
// Метод-конструктор класса Product public function Product ( ) { // Расположенный здесь код инициализирует экземпляры класса Product
}
// Метод экземпляра
public function doSomething ( ):void { // Расположенный здесь код выполняется всякий раз при вызове // метода doSomething( )
}
Базовый язык
Базовый язык ActionScript 3.0 основан на четвертой редакции спецификации языка ECMAScript, которая на момент написания этой книги (май 2007 года) находилась в стадии разработки.
^ 1 Со спецификацией языка ECMAScript 4 можно ознакомиться по адресу http://developer.
mozilla. org/es4/spec/spec. html. Спецификация языка ActionScript 3.0 находится по адресу 5J? k http: //I ivedocs. macromedia. com/specs/actionscri pt/3.
В будущем планируется реализовать язык ActionScript в полном соответствии со спецификацией языка ECMAScript 4. Помимо языка ActionScript, спецификация ECMAScript также лежит в основе JavaScript — популярного языка веб-браузеров. Ожидается, что в будущей версии браузера Firefox 3.0 будет реализована поддержка языка JavaScript 2.0 с использованием того же базового кода, который применяется для ActionScript. Этот код был передан организации Mozilla Foundation корпорацией Adobe в ноябре 2006 года (дополнительную информацию можно найти по адресу http://www. mozilla. org/projerts/tamann).
Спецификация языка ECMAScript 4 налагает ограничения на базовый синтаксис и грамматику языка ActionScript — код, применяемый для создания таких элемен-
тов, как выражения, инструкции, переменные, функции, классы и объекты. Кроме того, спецификация языка ECMAScript 4 определяет небольшой набор встроенных типов данных для работы с распространенными значениями (например, String, Number и Boolean).
Ниже перечислены некоторые ключевые возможности базового языка ActionScript версии 3.0.
? Первоклассная поддержка наиболее распространенных объектно-ориентированных конструкций, например классов, объектов и интерфейсов.
? Однопоточная модель исполнения кода.
? Проверка типов на этапе выполнения.
? Дополнительная проверка типов на этапе компиляции.
? Динамические возможности, позволяющие, например, создавать новые методы-конструкторы и переменные на этапе выполнения.
? Исключения, генерируемые на этапе выполнения.
? Поддержка языка XML в качестве одного из встроенных типов данных.
? Пакеты для организации библиотек кода.
? Пространства имен для уточнения идентификаторов.
? Регулярные выражения.
Все клиентские среды выполнения Flash, поддерживающие язык ActionScript 3.0, в целом реализуют возможности базового языка. В этой книге полностью рассматривается базовый язык, за исключением регулярных выражений.
Клиентские среды выполнения Flash
Для исполнения программ, разработанных с использованием языка ActionScript, могут использоваться три различные клиентские среды выполнения: Adobe AIR, Flash Player и Flash Lite.
? Adobe AIR. Среда выполнения Adobe AIR исполняет Flash-приложения, предназначенные для развертывания на компьютере пользователя. Эта клиентская среда выполнения поддерживает содержимое в формате SWF, а также содержимое, подготовленное с использованием языков HTML и JavaScript. Среда выполнения Adobe AIR должна быть установлена на компьютере конечного пользователя на уровне операционной системы.
Дополнительную информацию можно получить по адресу http://www. adobe. com/ go/air.
? Flash Player. Среда выполнения Flash Player исполняет Flash-содержимое и Flash-приложения, предназначенные для развертывания в Интернете. Это приложение является предпочтительной средой выполнения для содержимого в формате SWF, интегрированного в веб-страницу. Flash Player обычно устанавливается в качестве дополнительного модуля к браузеру, но при этом он может работать и в автономном режиме.