Январь 2011

Руководство по actionscript. часть 1, стр. 020

Прочитав часть I, вы получите глубокие знания основ языка ActionScript 3.0 и сможете применить их на практике, разрабатывая пример-приложение создания виртуального зоопарка.

? Глава 1 «Основные понятия».

? Глава 2 «Условные операторы и циклы».

? Глава 3 «Пересмотр методов экземпляра».

? Глава 4 «Статические переменные и методы».

? Глава 5 «Функции».

? Глава 6 «Наследование».

? Глава 7 «Компиляция и выполнение программы».

? Глава 8 «Типы данных и проверка типов».

? Глава 9 «Интерфейсы».

? Глава 10 «Инструкции и операторы».

? Глава И «Массивы».

? Глава 12 «События и обработка событий».

? Глава 13 «Обработка исключений и ошибок».

? Глава 14 «Сборка мусора».

? Глава 15 «Динамические возможности языка ActionScript».

? Глава 16 «Область видимости».

? Глава 17 «Пространства имен».

? Глава 18 «Язык XML и расширение Е4Х».

? Глава 19 «Ограничения безопасности Flash Player».

ГЛАВА 1

Основные понятия

Программа — это набор команд, выполняемых (или исполняемых) компьютером или приложением. Текст программы, записанный в виде, удобном для восприятия человеком, называется исходным кодом, или просто кодом, а человек, который создает программу, — программистом, кодировщиком или разработчиком. Для написания программ используются определенные языки программирования. Они определяют синтаксис и грамматику, которые должны использовать программисты при написании инструкций к создаваемой программе. В настоящей книге подробно описываются особенности языка программирования ActionScript 3.0. Приготовьтесь приятно провести время.

Инструменты для написания кода на языке ActionScript

Код на языке ActionScript представляет собой обычный текст, поэтому программы на его основе можно создать даже с помощью простейшего текстового редактора, например Блокнота операционной системы Windows или приложения TextEdit операционной системы Macintosh. Тем не менее в среде программистов ActionScript наиболее распространены два коммерческих приложения, являющиеся разработками корпорации Adobe Systems Incorporated: программа Flex Builder и среда разработки Flash.

Программа Flex Builder представляет собой интегрированную среду разработки, или /Disintegrated Development Environment). IDE — это приложение, предназначенное для написания и управления кодом, во многом напоминающее текстовый процессор, предназначенный для создания печатных документов. Разработчики используют программу Flex Builder для создания приложений и мультимедийного содержимого с помощью языков ActionScript, MXML или их обоих. Язык MXML основан на языке XML и применяется для описания пользовательских интерфейсов.

Руководство по actionscript. часть 1, стр. 021

В отличие от Flex Builder, среда разработки Flash — это инструмент, сочетающий в себе редакторы проекта, анимации и программный редактор. Она используется программистами для создания приложений и мультимедийного содержимого путем объединения кода на языке ActionScript с нарисованными от руки изображениями, анимацией и мультимедийными элементами.

Язык ActionScript 3.0 поддерживается программами Flex Builder и Flash CS3 (другое название среды разработки Flash версии 9) и их более поздними версиями.

Найти программу Flex Builder можно по адресу: http://www. adobe. com/products/flex/. Среда разработки Flash доступна по адресу: http://www. adobe. com/products/flash/.

Большая часть этой книги посвящена созданию приложений и мультимедийного содержимого с использованием исключительно кода ActionScript. В гл. 29 описывается использование языка ActionScript в среде разработки Flash. Рассмотрение языка MXML выходит за рамки данной книги. Ознакомиться с ним можно в книге «Programming Flex 2» (Kazoun and Lott, 2007) издательства O’Reilly или в документации по программе Adobe Flex Builder.

Клиентские среды выполнения Flash

Для выполнения программ, написанных на языке ActionScript, могут применяться три различных приложения, разработанные корпорацией Adobe: Flash Player, Apollo и Flash Lite.

Приложение Flash Player позволяет выполнять программы на ActionScript в браузере или в автономном режиме на Рабочем столе. Оно обладает крайне ограниченным доступом к операционной системе (например, выполняемая программа не может управлять файлами, контролировать окна или получать доступ к большинству аппаратных устройств компьютера).

Руководство по actionscript. часть 1, стр. 022

Приложение Apollo позволяет выполнять программы на ActionScript на Рабочем столе и является полностью интегрированным с операционной системой (например, выполняемая программа может осуществлять любые операции, в том числе и те, доступ к которым невозможен при использовании приложения Flash Player: управлять файлами, контролировать окна и получать доступ к аппаратному обеспечению компьютера).

Приложение Flash Lite предназначено для использования на мобильных устройствах, например на сотовых телефонах. На момент издания этой книги приложение Flash Lite было способно выполнять программы, написанные только на языке ActionScript 2.0 (но не на языке ActionScript 3.0). В то же время приложения Flash Player и Apollo позволяют выполнять программы, написанные на языке ActionScript 3.0. Таким образом, методики, изложенные в этой книге, применимы только к приложениям Flash Player и Apollo (до тех пор пока в приложении Flash Lite не будет реализована поддержка языка ActionScript 3.0).

В общем смысле, приложения Flash Player, Apollo и Flash Lite называются клиентскими средами выполнения Flash (или сокращенно средами выполнения Flash), поскольку они управляют программами на ActionScript в процессе их выполнения, или «прогона». Среды выполнения Flash доступны для операционных систем Windows, Macintosh и Linux, а также для различных мобильных устройств. Поскольку программы на ActionScript выполняются средой выполнения Flash, а не конкретной операционной системы или аппаратного устройства, то любую программу на языке ActionScript можно считать переносимой, так как она может выполняться на различных аппаратных устройствах (телефонах, игровых приставках) и в операционных системах (Windows, Macintosh и Linux).

Руководство по actionscript. часть 1, стр. 023

Зачастую термин «виртуальная машина ActionScript* используется как аналог термина «клиентская среда выполнения Flash». Однако на деле между этими двумя терминами существует разница и они не являются взаимозаменяемыми. Технически виртуальная машина ActionScript (AVM — ActionScript virtual machine) представляет собой программный модуль, являющийся частью приложений Flash Player, Apollo и Flash Lite, который выполняет программы на ActionScript. В то же время на любую среду выполнения Flash возлагаются и другие задачи, например отображение содержимого на экране, воспроизведение видео и аудио, взаимодействие с операционной системой. Версия виртуальной машины ActionScript, позволяющая выполнять код ActionScript 3.0, получила название A VM2. Версия виртуальной машины ActionScript, позволяющая выполнять код ActionScript 1.0 и ActionScript 2.0 (данные версии языка ActionScript не рассматриваются в этой книге), получила название Л УМУ.

Компиляция

Прежде чем программа, написанная на языке ActionScript, будет обработана средой выполнения Flash, код ActionScript 3.0 должен быть из формы, понятной программисту, преобразован в сжатый, двоичный формат, принятый в среде выполнения Flash и называемый байт-кодом ActionScript, или ABC. Однако сам по себе байт-код ActionScript не может быть исполнен средой Flash; он должен быть помещен в бинарный файл-контейнер с расширением SWF. Для хранения в SWF-файле байт-кода и всех включенных мультимедийных элементов, необходимых ActionScript, применяется формат файла Flash SWF. Процесс преобразования программы на ActionScript в байт-код называется компиляцией программы. Процесс генерации SWF-файла называется компиляцией SWF-файла или иногда — экспортированием или публикацией SWF-файла.

Для компиляции программ ActionScript 3.0 и SWF-файлов используется программный модуль, называемый компилятором. Компилятор, применяемый для преобразования кода ActionScript, называется компилятором ActionScript. Компилятор, применяемый для генерации SWF-файлов, называется компилятором SWF. Любой компилятор SWF, реализующий полную поддержку формата файла Flash, включает компилятор ActionScript. Естественно, компилятор SWF (и как следствие, компилятор ActionScript) входит в состав приложения Flex Builder и среды разработки Flash. Приложение Flex Builder и среда разработки Flash используют один и тот же компилятор ActionScript, но при этом имеют различные компиляторы SWF, называемые компилятором Flex и компилятором Flash соответственно. Кроме того, компилятор Flex доступен в виде отдельного консольного приложения mxmlc, которое входит в состав бесплатного инструментария разработчика корпорации Adobe — Flex 2 SDK, и может быть загружен по адресу: http://www. adobe. com/go/flex2_sdk.

Руководство по actionscript. часть 1, стр. 024

Динамическая компиляция. В процессе выполнения программы на ActionScript среда Flash читает скомпилированный байт-код ActionScript и преобразует его в машинные команды, определенные для конкретного аппаратного обеспечения

компьютера, на котором выполняется данная программа. В большинстве случаев преобразованные машинные команды сохраняются в памяти для дальнейшего использования, благодаря чему отпадает необходимость в повторном преобразовании байт-кода ActionScript.

Как и процесс преобразования кода ActionScript 3.0 в байт-код, процесс преобразования байт-кода ActionScript в машинный код и его последующее сохранение для дальнейшего выполнения называется компиляцией. Таким образом, для большинства программ на ActionScript компиляция выполняется в два этапа.

На первом этапе разработчик компилирует код из удобного для чтения формата в формат, который понимает среда выполнения Flash (байт-код ActionScript). После этого среда выполнения Flash автоматически компилирует байт-код ActionScript в понятный конкретному аппаратному обеспечению формат, на котором выполняется программа (машинный код). Такой вид компиляции (байт-код в машинный код) называется динамической компиляцией, или JIT (Just-In-Time), поскольку она происходит непосредственно перед тем моментом, когда программе потребуется определенный фрагмент скомпилированного байт-кода. Динамическая компиляция иногда называется динамической трансляцией. Опытным программистам, возможно, будет интересно узнать, что динамическая компиляция не применяется для кода, находящегося на верхнем уровне описания класса (поскольку этот код выполняется всего один раз).

Краткий обзор

Выше было рассмотрено множество базовых понятий. Теперь подведем промежуточные итоги.

Программа, написанная на языке ActionScript, представляет собой набор инструкций, исполняемых одной из существующих сред выполнения Flash: приложением Flash Player, Apollo или Flash Lite. Программы на языке ActionScript можно создавать в обычном текстовом редакторе, в приложении Flex Builder или в среде разработки Flash. Перед выполнением программа должна быть скомпилирована в SWF-файл с помощью компилятора SWF, в качестве которого может выступать компилятор Flash, входящий в состав среды разработки Flash, или компилятор mxmlc, входящий в состав приложения Flex Builder и инструментария разработчика Flex 2 SDK.

Не волнуйтесь, если некоторые из понятий или терминов вам совершенно незнакомы. Вы сможете ознакомиться с ними в следующих разделах.

Теперь приступим к написанию кода.

Классы и объекты

Представьте, что вы собираетесь построить самолет. Обдумайте этапы предстоящей работы. Вряд ли вы сразу направитесь в магазин за металлом, чтобы приступить

к сварке. Для начала необходимо подготовить чертеж будущего самолета. На самом же деле, принимая во внимание тот факт, что вы строите самолет с нуля, необходимо подготовить не один, а несколько чертежей — но одному для каждой части самолета (колес, крыльев, кресел, тормозов и т. д.). Каждый чертеж должен в полной мере описывать определенную часть конструкции и соответствовать реальной детали в физической реализации. Для построения самолета необходимо изготовить каждую деталь по отдельности, а затем собрать готовые составляющие в соответствии с основным чертежом. Взаимодействие собранных частей самолета будет определять его поведение.

Руководство по actionscript. часть 1, стр. 025

Если приведенные примеры понятны для вас, значит, у вас есть все необходимое, чтобы стать программистом на языке ActionScript. Выполняющаяся программа, как и самолет, летящий высоко в небе и представляющий собой совокупность взаимодействующих частей, разработанных по набору чертежей, является совокупностью взаимодействующих объектов, построенных из набора классов. В программе объекты ActionScript представляют собой как материальные предметы, так и неосязаемые понятия. Например, объект может представлять число в вычислении, интерактивную кнопку пользовательского интерфейса, момент времени на календаре или эффект размытия на изображении. Объекты являются воплощениями, или экземплярами, классов. Иначе говоря, классы — это чертежи, по которым создаются объекты.

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

Из классов, описанных в программе, мы формируем объекты (или создаем экземпляры), а затем управляем этими объектами, давая указания к выполнению тех или иных действий. Действия, выполняемые объектами, определяют поведение программы.

Процесс создания программы с помощью классов и объектов называется объектно-ориентированным программированием (ООП).

Прежде чем приступить к написанию программы, кратко рассмотрим важную группу классов, называемых собственными классами и являющихся частью языка ActionScript. Собственные классы, приведенные в табл. 1.1, применяются для работы с основными типами данных, например с числами и текстом. Логично предположить, что в каждой создаваемой программе вы будете использовать экземпляры

Руководство по actionscript. часть 1, стр. 026

По крайней мере одного или двух собственных классов языка ActionScript — аналогично использованию готовых деталей от стороннего производителя при построении самолета. Изучите табл. 1.1, чтобы получить общее представление об этих классах. В следующих разделах собственные классы будут рассмотрены более подробно.

Таблица 1.1. Собственные классы языка ActionScript

Класс Описание

String Представляет текстовые данные (то есть строку или символы)

Boolean Определяет логические состояния true (истина) или false (ложь)

Number Представляет числа с плавающей запятой (то есть числа с дробной частью)

Int Определяет целые числа (то есть числа без дробной части)

Uint Представляет положительные целые числа

Array Определяет упорядоченный список

Error Представляет ошибку в программе (то есть проблему в вашем коде)

Date Представляет определенный момент времени

Math Содержит распространенные математические величины и операции

Reg Exp Определяет инструменты для поиска и замены текста

Function Представляет многократно используемый набор инструкций, которые могут быть вызваны и исполнены повторно

Object Определяет базовые возможности всех объектов языка ActionScript

Теперь попробуем применить классы и объекты в примере программы — простом приложении, имитирующем зоопарк с виртуальными животными.

_

J Применение методики, называемой созданием сценариев на временной шкале, в среде I разработки Flash позволяет создавать программы на ActionScript без предварительного определения класса (дополнительную информацию можно найти в гл. 29). Тем не менее, даже если в будущем вы не планируете создавать классы самостоятельно, я настоятельно рекомендую вам познакомиться с методиками, рассмотренными в этой главе. Знакомство с процессом создания классов позволит значительно углубить ваше понимание языка ActionScript в целом и поможет вам стать более профессиональным программистом.

Создание программы

Как уже было сказано, программы на языке ActionScript построены из классов, которые являются «чертежами» взаимодействующих между собой частей (объектов) программы. Обычно разработка новой программы на ActionScript начинается с фазы проектирования, в течение которой функциональные возможности программы разбиваются на логически связанные классы. Каждому классу присваивается имя, определяются его свойства и роль в создаваемой программе. Один класс назначается основным классом. Он содержит стартовую точку, то есть программную точку входа, для приложения. Для запуска новой программы в среде выполнения Flash автоматически создается экземпляр основного класса программы.

Руководство по actionscript. часть 1, стр. 027

Основному классу нашего примера программы по созданию виртуального зоопарка мы присвоим имя VirtualZoo. Сначала создадим папку с именем virtualzoo

в файловой системе компьютера, внутри которой создадим вложенную папку src (сокращенно от слова source — «исходный код»). В ней будут храниться все файлы с расширением AS (то есть все файлы, содержащие исходный код).

Исходный код каждого основного класса программы должен размещаться в отдельном текстовом файле, имя которого состоит из имени основного класса и расширения AS. Таким образом, необходимо создать пустой текстовый файл с именем VirtualZoo. as. Нужно убедиться, что имя файла VirtualZoo. as полностью совпадает с именем класса VirtualZoo, поскольку в данном случае учитывается регистр символов. Далее поместим файл VirtualZoo. as в папку virtualzoo/src. Тогда текущая файловая структура для исходных файлов нашей программы будет иметь следующий вид:

virtual zoo |- src |- Virtual Zoo. as

Теперь, когда файл VirtualZoo. as создан, мы можем приступать к написанию класса VirtualZoo. Однако сначала нужно решить возможную проблему: если выбранное имя основного класса будет конфликтовать (то есть совпадать) с именем одного из предопределенных классов языка ActionScript, то компилятор языка ActionScript не позволит создать этот класс и программа не сможет быть выполнена. Чтобы избежать подобных проблем с именами, воспользуемся пакетами.

Поскольку нам необходимо рассмотреть большой объем материала, мы не будем компилировать код нашей программы вплоть до гл. 7. Если вы все же решите самостоятельно откомпилировать примеры, представленные в гл. 1-6, то, скорее всего, столкнетесь с множеством различных предупреждений и ошибок при компиляции примеров. Внимательное изучение указанных глав позволит вам избежать многих из этих ошибок.

Руководство по actionscript. часть 1, стр. 028

Пакеты

Как видно из названия, пакет — это общее определение блока, в который входят группы классов и, как будет сказано ниже, другие элементы программы. Каждый пакет определяет границы независимой физической области программы и присваивает этой области имя, называемое именем пакета. Чтобы отличать классы от пакетов, имена пакетов принято записывать со строчной буквы, а имена классов — с прописной.

Когда исходный код класса размещается внутри пакета, имя пакета автоматически становится частью имени класса подобно тому, как ребенок наследует фамилию своих родителей. Например, класс Player, размещенный в пакете game, получает имя game. Player. Обратите внимание, что сначала указывается имя пакета, которое отделяется от имени класса с помощью символа «точка» (.) (термин «символ* в среде программистов обозначает букву, цифру, знак препинания и т. д.). Имя пакета помогает отличить класс game. Player от других классов с именем Player, тем самым предотвращая конфликты имен между различными частями программы или между пользовательскими и предопределенными классами языка ActionScript.

Для создания нового пакета используется директива описания пакета. Рассмотрим этот термин. В языке ActionScript все инструкции программы обычно называются директивами. Описания — это один из типов директив; они создают или описывают, например, пакет или класс. В данном случае описываемым элементом является пакет, откуда и название термина — директива описания пакета.

Руководство по actionscript. часть 1, стр. 029

-&_

Если описание создает какой-либо элемент в программе, то говорят, что оно определяет или объявляет этот элемент. Описания часто называют объявлениями.

В общем виде директива описания пакета записывается следующим образом:

package имяПакета {

}

Все описания пакетов начинаются с ключевого слова: package. Ключевое слово — это имя команды, зарезервированное для использования в языке ActionScript. В данном случае ключевое слово package сообщает компилятору ActionScript о необходимости создания пакета. Сразу после ключевого слова package указывается желаемое имя пакета — в предыдущем примере оно заменено выражением имяПакета (здесь и далее код, выделенный подобным образом, например имяПакета, обозначает текст, который должен быть заменен программистом). Затем с помощью фигурных скобок { и } отмечаются начало и конец содержимого пакета. Чтобы добавить класс в пакет, необходимо записать исходный код класса между фигурными скобками, как показано в следующем примере:

package имяПакета { Сюда помещается исходный код класса

}

С технической точки зрения фигурные скобки в описании пакета являются своего рода оператором, называемым оператором блока. Как и описания, операторы относятся к директивам, или, иначе говоря, к базовым инструкциям программы. Оператор блока обозначает начало и конец группы директив, которые должны рассматриваться как логическое целое. Оператор блока описания пакета называется блоком пакета или иногда телом пакета.

j*_

Полный список операторов языка ActionScript указан в гл. 10.

Принято (но вовсе не обязательно) именам пакетов присваивать следующую иерархическую структуру:

? доменное имя организации, которая занимается разработкой программы, записанное в обратном порядке;

? точка (*);

? общее описание содержимого пакета.

Например, пакету, содержащему классы для картографического приложения, разрабатываемого фирмой Acme Corp. (доменное имя acme. com), может быть присвоено имя com. acme. map, как показано в следующем примере:

package com. acme. map {

}

Обратите внимание, что имя домена верхнего уровня com предшествует имени домена нижнего уровня acme (то есть в имени пакета составляющие доменного имени записываются в обратном порядке).

Доменные имена гарантированно являются уникальными благодаря системе авторизованных регистраторов доменов верхнего уровня. Иными словами, использование доменного имени вашей организации в начале имени пакета позволит избежать конфликтов имен с кодом, разработанным другими организациями.

Теперь попытаемся воспользоваться пакетами в нашей программе создания виртуального зоопарка. Чтобы упростить пример, назовем пакет zoo, без указания доменного имени организации. Для описания пакета zoo добавим следующий код в файл VirtualZoo. as:

package zoo { }

После того как мы добавили пакет в файл VirtualZoo. as, необходимо изменить расположение файла в файловой системе, чтобы оно соответствовало имени созданного пакета. Вследствие требований, налагаемых всеми компиляторами языка ActionScript корпорации Adobe, исходный файл, содержащий класс (или другое описание) внутри пакета, должен размещаться в структуре папок, соответствующей имени пакета. Например, файл, содержащий пакет с именем com. gamecompany. zoo, должен размещаться в папке zoo, вложенной в папку gamecompany, которая, в свою очередь, вложена в папку com (то есть com/gamecompany/zoo). Таким образом, мы создадим новую папку с именем zoo в файловой структуре нашей программы и перенесем файл VirtualZoo. as в эту папку. Файловая структура исходных файлов программы тогда будет выглядеть следующим образом:



Полезные ссылки
Случайные записи
  • 15.07.2012">Англоязычные статьи Wikipedia можно будет комментировать
  • 01.03.2011">Руководство по actionscript. часть 5, стр. 114
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 043
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 015
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 009
  • 18.03.2011">Руководство по actionscript. часть 2, стр. 111
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 029
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 005
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.4
  • 16.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.14
  • 18.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.68
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.85
  • 19.07.2010">Тестируем сайт правильно
  • 09.03.2011">Руководство по actionscript. часть 4, стр. 055
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 024
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...