Объектная
модель ActionScript
Под объектной
моделью понимается совокупность типов объектов, которые могут использоваться
в сценарии, и отношения подчиненности между ними.
Напомним,
что в языках программирования объект описывается набором атрибутов (свойств)
и перечнем методов (процедур), которые могут быть применены, к этому объекту.
Для каждого класса объектов определен свой набор атрибутов и методов. Например,
для объекта «Кнопка» в качестве атрибутов могут использоваться метка,
геометрические размеры, координаты, а в качестве метода — реакция на нажатие
кнопки. Конкретный объект -- это экземпляр соответствующего класса. Два экземпляра
одного и того же класса могут отличаться один от другого значениями атрибутов.
Для описания
действий над объектами, а также для указания подчиненности объекта обычно применяется
так называемая «точечная нотация». Например, чтобы указать, что
к кнопке
Button_l
следует применить метод
onPress(),
используется
конструкция
Button_1.
onPress().
Если же требуется
указать на принадлежность кнопки
Button_1
клипу
Сliр_2,
то запись
может выглядеть так:
Clip_2.
Button_1.
Объектная
модель, применяемая в ActionScript, во многом аналогична объектным моделям других
сценарных языков (например, JavaScript). Вместе с тем, существуют и определенные
различия. Основное из них состоит в том, что в ActionScript иерархия объектов
строится относительно Flash-плеера, а не относительно HTML-документа, отображаемого
в окне Web-броузера.
Например,
если HTML-документ содержит форму
Form_l,
в которой имеется кнопка
Input_1,
то в JavaScript «подчиненность» кнопки описывается следующим
образом:
Documen
t. Widow. Form_1. Input_1.
При этом,
если обращение к кнопке выполняется из текущего документа, отображаемого в том
же окне броузера, то первые два уровня иерархии явно не указываются, а подразумеваются.
Соответственно, для обращения к кнопке может быть использована конструкция
Form_1.
Input_1.
Аналогичные
правила действуют и в ActionScript. Например, чтобы обратиться к клипу, непосредственно
вставленному в кадр- основного фильма, можно записать:
_root. Clip_l.
Ключевое слово
_
root
используется в качестве имени основного фильма и в данном случае
может быть опущено. Если же клип является частью другого, «родительского»,
клипа, то для указания его подчиненности может использоваться ключевое слово
_parent,
например:
_parent.
Clip_1.
Подробнее
вопросы адресации объектов в ActionScript рассмотрены в следующем подразделе.
Теперь вернемся
собственно к объектной модели ActionScript.
Как было сказано
выше, корневым объектом, неявно присутствующим в любом сценарии, является Flash-плеер.
На следующем уровне располагаются четыре класса объектов (рис. 11.2):
-
Movie
(Объекты
фильма);
-
Core
(Объекты
ядра);
-
Client/Server
(Объекты
клиент-серверной среды исполнения);
-
Authoring
(Объекты
среды разработки).
Рис. 11.2.
Объектная модель ActionScript
Объекты класса
Movie
позволяют представить в сценарии взаимоотношения между элементами
фильма (то есть структуру фильма), а также управлять параметрами и поведением
элементов фильма. К этому классу относятся, в частности, следующие объекты:
-
Button
(Кнопка)
— объект, представляющий в сценарии кнопку; для такого объекта может динамически
изменяться, например, порядок установки фокуса ввода;
-
MovieClip
(Клип)
- объект, представляющий в сценарии клип; для него может динамически изменяться,
например, число вложенных клипов;
-
Mouse
(Мышь) —
объект, представляющий в сценарии указатель мыши; он позволяет управлять видимостью
и стилем указателя;
-
Key
(Клавиатура)
— объект, представляющий в сценарии клавиши, используемые для управления фильмом;
-
Color
(Цвет) —
объект, представляющий в сценарии палитру клипа и, соответственно, позволяющий
изменять эту палитру;
-
Sound
(Звук)
- объект, представляющий -в сценарии звуковой символ, связанный с кнопкой
или клипом;
-
Stage
(Стол) —
объект, предназначенный для управления некоторыми параметрами стола (в частности,
масштабом изображения);
-
TextField
(Текстовое
поле) - объект, представляющий в сценарии динамическое текстовое поле или
поле редактирования;
-
TextFormat
(Формат
текста) - объект, позволяющий управлять из сценария параметрами шрифта текстового
поля.
Между объектами
классов
Button
и
MovieClip
в ActionScript весьма сложно определить
отношения подчиненности: они могут изменяться от одного фильма к другому и даже
от одной сцены к другой. Например, i одной сцене кнопка может входить в состав
клипа, а в другой — клиг может использоваться для «оживления» изображения
кнопки, остальные же объекты класса
Movie
(за исключением, пожалуй,
TextField
) можно считать подчиненными по отношению к объектам
Button
и
MovieClip,
поскольку могут входить в их состав, но не наоборот.
Замечание
Обратите внимание, что
в ActionScript ни для кадра, ни для сцены фильма не предусмотрен соответствующий
класс объектов. Дело в том, что ActionScript не позволяет изменять никакие
свойства этих элементов фильма. С помощью сценария вы можете только обратиться
к кадру (сцене) по его имени или номеру, а также проверить, загружен он либо
нет. Как правило, кадр или сцена используются в качестве параметров действий
(Actions) и методов. Например, чтобы перейти к 20-у кадру, можно записать
действие gotoAndPlay(20).
Объекты класса
Core
предназначены для работы с объектами фильма и носят вспомогательную
роль. Их следует использовать в том случае, если стандартных методов оказывается
недостаточно для управления (изменения свойств) объектами фильма. В класс
Core
входят, в частности, следующие объекты:
-
Math
(Математика)
— объект, используемый в сценарии для работы с числовыми величинами; в отличие
от всех других классов языка ActionScript, объект
Math
является и единственным
экземпляром этого класса; то есть методы данного класса могут применяться
непосредственно к объекту
Math;
например, чтобы получить значение косинуса
с помощью метода
cos,
можно записать:
Math.cos(3)\
-
Number
(Число)
- объект, предусмотренный для выполнения некоторых специальных операций с
числовыми величинами; например, с его помощью можно определить наибольшее
число в некотором диапазоне;
-
String
(Строка)
— объект, используемый в сценарии для работы со строками;
-
Date
(Дата) -
объект, используемый в сценарии для работы с календарными датами и временем.
Объекты класса
Client/Server
предназначены для работы с документами (Web-страницами),
написанными на языке XML. Некоторые из этих объектов обеспечивают загрузку,
обработку и пересылку XML-документов, другие - обслуживают соединения через
сокеты. Тем самым ActionScript реализует поддержку серверной обработки XML-документов,
содержащих Flash-фильмы.
Объект класса
Authoring
предназначен для управления параметрами среды разработки Flash-фильмов.
Для него предусмотрены два основных метода:
install
и
uninstall.
|