Руководство по actionscript. часть 3, стр. 116
Набор компонентов пользовательского интерфейса платформы разработки Flex является частью платформы разработки Flex — внешней библиотеки классов, поставляемой вместе с приложением Adobe Flex Builder. Эта библиотека также доступна для бесплатной загрузки по адресу http://www. adobe. com/go/flex2_sdk. Набор компонентов графического интерфейса платформы разработки Flex разработан для построения приложений с относительно стандартными элементами управления пользовательского интерфейса (полосами прокрутки, раскрывающимися меню, таблицами данных и т. д.). Элементы интерфейса платформы разработки Flex обычно используются в приложениях MXML, но могут включаться и в приложения, разработанные в основном с использованием языка ActionScript. Подробности использования платформы разработки Flex в приложениях на языке ActionScript можно найти в гл. 30.
Набор компонентов пользовательского интерфейса среды разработки Flash предназначен для использования в SWF-файлах, созданных в среде разработки Flash, а также, когда размер файла и низкое потребление памяти оказываются гораздо важнее расширенных возможностей компонента, например связывания данных и улучшенных возможностей стилизации. Набор компонентов пользовательского интерфейса среды разработки Flash и набор компонентов пользовательского интерфейса платформы разработки Flex используют очень похожий интерфейс API, что позволяет разработчикам применять полученные знания при переходе от одного набора компонентов к другому.
В приложении Flash Player 8 и более старых версиях язык ActionScript предоставлял следующие четыре основных строительных блока для создания и управления графическим содержимым.
? Клип — контейнер для графического содержимого, реализующий интерактивные возможности, простейшее рисование, иерархическое размещение элементов и анимационные возможности.
? Текстовое поле — прямоугольная область, содержащая отформатированный текст.
? Кнопка — элемент ввода, представляющий собой очень простую интерактивную кнопку.
? Растровое изображение (появилось в приложении Flash Player 8) — графическое изображение в растровом формате.
Перечисленные элементы остаются доступными в интерфейсе API отображения, однако представляющие их классы в языке ActionScript 3.0 (MovieClip, TextField, SimpleButton и Bitmap) были улучшены, переработаны и приобрели больше возможностей.
Обзор API отображения
В языке ActionScript все графическое содержимое создается и управляется с помощью классов интерфейса API отображения. Даже элементы интерфейса платформы разработки Flex и среды разработки Flash используют интерфейс API отображения в качестве графической основы. Многие классы API отображения непосредственно представляют конкретный тип графического содержимого, выводимого на экран. Например, класс Bitmap представляет растровые изображения, класс Sprite — интерактивную графику, а класс TextField — отформатированный текст.
При обсуждении мы будем называть классы, которые непосредственно представляют отображаемое на экране содержимое (и суперклассы этих классов), базовыми классами отображения. Остальные классы API отображения определяют вспомогательную графическую информацию и функциональность, но сами не представляют содержимое на экране. Например, классы CapStyle и JointStyle определяют константы, представляющие настройки для рисования линий, в то время как классы Graphics и BitmapData задают множество примитивных операций рисования. Мы будем называть такие классы, не отображающие информацию на
экране, вспомогательными классами отображения. Большинство базовых и вспомогательных классов API отображения находятся в пакете flash. display.
Базовые классы отображения, представленные на рис. 20.1, образуют иерархию, которая отражает три базовых уровня функциональности: отображение, пользовательскую интерактивность и содержание. Соответственно тремя важнейшими классами API отображения являются: DisplayObject, InteractiveObject и DisplayObjectContainer. Непосредственно создать экземпляры этих классов невозможно, однако они определяют абстрактную функциональность, которая реализуется различными конкретными подклассами.
Как уже говорилось в гл. 6, ActionScript 3.0 не поддерживает настоящие абстрактные классы. Поэтому на рис. 20.1 классы DisplayObject, InteractiveObj ect и DisplayOb j ectContainer показаны не как абстрактные классы, а как классы абстрактного типа. Тем не менее, несмотря на эту техническую деталь, для краткости в оставшейся части этой главы мы будет использовать термин «абстрактный» при описании архитектурной роли, которую играют классы DisplayObject, InteractiveObject и DisplayObjectContainer.
I 1 Конкретный класс
отображения | | Содержимое, доступное
Рис. 20.1. Иерархия базовых классов отображения
Класс DisplayOb j ect — корневой элемент в иерархии базовых классов отображения, он определяет первый уровень графической функциональности API отображения — вывод на экран. Все классы, унаследованные от DisplayOb j ect, получают общий набор основных графических характеристик и возможностей. Например, для любого потомка класса DisplayOb j ect можно изменить его позицию, размеры и угол поворота с помощью переменных х, у, width, height и rotation. Класс
DisplayOb j ect — это не просто базовый класс; это источник многих расширенных возможностей в API отображения, включая следующие, но не ограничиваясь ими:
? преобразование координат (ознакомьтесь с описанием методов экземпляра localToGlobal ( ) и globalToLocal ( ) класса DisplayOb j ect в справочнике по языку ActionScript корпорации Adobe);
? определение пересечений между объектами и точками (ознакомьтесь с описанием методов экземпляра hitTestObject ( ) и hitTestPoint ( ) класса DisplayOb j ect в справочнике по языку ActionScript);
? применение фильтров, трансформаций и масок (ознакомьтесь с описанием переменных экземпляра filters, transform и mask класса DisplayObject в справочнике по языку ActionScript);
? непропорциональное изменение масштаба для «растягиваемых» графических элементов (ознакомьтесь с описанием переменной экземпляра scale 9gr id класса DisplayOb j ect в справочнике по языку ActionScript корпорации Adobe).