Под объектной
моделью понимается совокупность типов объектов, которые могут использоваться
в сценарии, и отношения подчиненности между ними.
Напомним,
что в языках программирования объект описывается набором атрибутов (свойств)
и перечнем методов (процедур), которые могут быть применены, к этому объекту.
Для каждого класса объектов определен свой набор атрибутов и методов. Например,
для объекта «Кнопка» в качестве атрибутов могут использоваться метка,
геометрические размеры, координаты, а в качестве метода — реакция на нажатие
кнопки. Конкретный объект -- это экземпляр соответствующего класса. Два экземпляра
одного и того же класса могут отличаться один от другого значениями атрибутов.
Для описания
действий над объектами, а также для указания подчиненности объекта обычно применяется
так называемая «точечная нотация». Например, чтобы указать, что
к кнопке
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):
Рис. 11.2.
Объектная модель ActionScript
Объекты класса
Movie
позволяют представить в сценарии взаимоотношения между элементами
фильма (то есть структуру фильма), а также управлять параметрами и поведением
элементов фильма. К этому классу относятся, в частности, следующие объекты:
Между объектами
классов
Button
и
MovieClip
в ActionScript весьма сложно определить
отношения подчиненности: они могут изменяться от одного фильма к другому и даже
от одной сцены к другой. Например, i одной сцене кнопка может входить в состав
клипа, а в другой — клиг может использоваться для «оживления» изображения
кнопки, остальные же объекты класса
Movie
(за исключением, пожалуй,
TextField
) можно считать подчиненными по отношению к объектам
Button
и
MovieClip,
поскольку могут входить в их состав, но не наоборот.
Замечание
Обратите внимание, что в ActionScript ни для кадра, ни для сцены фильма не предусмотрен соответствующий класс объектов. Дело в том, что ActionScript не позволяет изменять никакие свойства этих элементов фильма. С помощью сценария вы можете только обратиться к кадру (сцене) по его имени или номеру, а также проверить, загружен он либо нет. Как правило, кадр или сцена используются в качестве параметров действий (Actions) и методов. Например, чтобы перейти к 20-у кадру, можно записать действие gotoAndPlay(20).
Объекты класса
Core
предназначены для работы с объектами фильма и носят вспомогательную
роль. Их следует использовать в том случае, если стандартных методов оказывается
недостаточно для управления (изменения свойств) объектами фильма. В класс
Core
входят, в частности, следующие объекты:
Объекты класса
Client/Server
предназначены для работы с документами (Web-страницами),
написанными на языке XML. Некоторые из этих объектов обеспечивают загрузку,
обработку и пересылку XML-документов, другие - обслуживают соединения через
сокеты. Тем самым ActionScript реализует поддержку серверной обработки XML-документов,
содержащих Flash-фильмы.
Объект класса
Authoring
предназначен для управления параметрами среды разработки Flash-фильмов.
Для него предусмотрены два основных метода:
install
и
uninstall.