Пакетflash.display
Классpublic class DisplayObject
НаследованиеDisplayObject Inheritance EventDispatcher Inheritance Object
Реализует IBitmapDrawable
Подклассы AVM1Movie, Bitmap, InteractiveObject, MorphShape, Shape, StaticText, Video

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Класс DisplayObject является базовым классом для всех объектов, которые можно поместить в список отображения. Список отображения управляет всеми объектами, отображаемыми в проигрывателе Flash Player. Используйте класс DisplayObjectContainer, чтобы упорядочить экранные объекты в списке отображения. Объекты DisplayObjectContainer могут иметь дочерние экранные объекты, а другие экранные объекты, такие как Shape и TextField, являются краевыми узлами, у которых есть только предки и родственные элементы, но нет потомков.

Класс DisplayObject поддерживает базовые функции, такие как положение объекта по осям x и y, а также некоторые расширенные свойства объекта, такие как матрица преобразования.

DisplayObject — это абстрактный базовый класс, поэтому DisplayObject нельзя вызывать непосредственно. При вызове new DisplayObject() выдается исключение ArgumentError.

Все экранные объекты наследуют свойства и методы класса DisplayObject.

Сам класс DisplayObject не содержит API-интерфейсов для визуализации содержимого на экране По этой причине, если требуется создать пользовательский подкласс класса DisplayObject, нужно расширить один из его подклассов, в которых есть API-интерфейс для визуализации содержимого на экране, такие как классы Shape, Sprite, Bitmap, SimpleButton, TextField и MovieClip.

Класс DisplayObject содержит несколько многоадресных событий. Как правило, целью любого конкретного события является конкретный экземпляр DisplayObject. Например, целью события added является конкретный экземпляр DisplayObject, который был добавлен в список отображения. Единственный целевой объект предотвращает добавление прослушивателей событий для этого объекта, а иногда и его предков, в список отображения. Однако для многоадресных событий целью является не конкретный объект DisplayObject, а все экземпляры DisplayObject, в том числе и те, что не включены в список отображения. Это значит, что вы можете добавить прослушиватель к любому экземпляру DisplayObject для прослушивания многоадресных событий. В дополнение к многоадресным событиям, перечисленным в таблице событий класса DisplayObject, класс DisplayObject наследует также два многоадресных события от класса EventDispatcher: activate и deactivate.

Некоторые свойства, которые ранее использовались в ActionScript 1.0 и 2.0 в классах MovieClip, TextField и Button (такие как _alpha, _height, _name, _width, _x, _y и другие) имеют эквиваленты в классе DisplayObject ActionScript 3.0, но они переименованы и больше не начинаются с символа подчеркивания (_).

Дополнительные сведения см. в главе "Программирование экрана" книги Программирование на ActionScript 3.0.

Посмотреть примеры

См. также

flash.display.DisplayObjectContainer


Общедоступные свойства
 СвойствоОпределено
  accessibilityProperties : AccessibilityProperties
Текущие параметры специальных возможностей для данного экранного объекта.
DisplayObject
  alpha : Number
Указывает значение альфа-прозрачности заданного объекта.
DisplayObject
  blendMode : String
Значение класса BlendMode, задающее режим наложения.
DisplayObject
  blendShader : Shader
[только для записи] Задает затенение, используемое при наложении переднего плана на фон.
DisplayObject
  cacheAsBitmap : Boolean
При значении true проигрыватель Flash Player кэширует внутреннее растровое представление экранного объекта.
DisplayObject
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  filters : Array
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом.
DisplayObject
  height : Number
Указывает высоту экранного объекта в пикселах.
DisplayObject
  loaderInfo : LoaderInfo
[только для чтения] Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект.
DisplayObject
  mask : DisplayObject
Вызывающий экранный объект маскируется заданным объектом mask.
DisplayObject
  mouseX : Number
[только для чтения] Указывает координату x положения курсора мыши (в пикселах).
DisplayObject
  mouseY : Number
[только для чтения] Указывает координату y положения курсора мыши (в пикселах).
DisplayObject
  name : String
Указывает имя экземпляра DisplayObject.
DisplayObject
  opaqueBackground : Object
Определяет, является ли экранный объект непрозрачным с определенным цветом фона.
DisplayObject
  parent : DisplayObjectContainer
[только для чтения] Указывает объект DisplayObjectContainer, содержащий данный экранный объект.
DisplayObject
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
  root : DisplayObject
[только для чтения] В случае с экранным объектом в загруженном SWF-файле свойством root является самый верхний экранный объект в части структуры дерева списка отображения, представленной этим SWF-файлом.
DisplayObject
  rotation : Number
Указывает поворот экземпляра DisplayObject относительно его исходной ориентации (в градусах).
DisplayObject
  rotationX : Number
Обозначает поворот в градусах по оси x экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру.
DisplayObject
  rotationY : Number
Обозначает поворот в градусах по оси у экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру.
DisplayObject
  rotationZ : Number
Обозначает поворот в градусах по оси z экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру.
DisplayObject
  scale9Grid : Rectangle
Текущая активная сетка масштабирования.
DisplayObject
  scaleX : Number
Указывает горизонтальное масштабирование объекта от точки регистрации (в процентах).
DisplayObject
  scaleY : Number
Указывает вертикальное масштабирование объекта от точки регистрации (в процентах).
DisplayObject
  scaleZ : Number
Указывает масштабирование глубины объекта (в процентах) относительно точки регистрации этого объекта.
DisplayObject
  scrollRect : Rectangle
Прямоугольная область прокрутки экранного объекта.
DisplayObject
  stage : Stage
[только для чтения] Класс Stage экранного объекта.
DisplayObject
  transform : Transform
Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта.
DisplayObject
  visible : Boolean
Определяет видимость экранного объекта.
DisplayObject
  width : Number
Указывает ширину экранного объекта в пикселах.
DisplayObject
  x : Number
Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer.
DisplayObject
  y : Number
Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer.
DisplayObject
  z : Number
Указывает положение по оси z экземпляра DisplayObject относительно трехмерного родительского контейнера.
DisplayObject
Общедоступные методы
 МетодОпределено
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях.
EventDispatcher
 Inherited
Передает событие в поток событий.
EventDispatcher
  
DisplayObject
  
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
Возвращает прямоугольник, определяющий область экранного объекта, которая относится к системе координат объекта targetCoordinateSpace.
DisplayObject
  
DisplayObject
  
getRect(targetCoordinateSpace:DisplayObject):Rectangle
Возвращает прямоугольник, определяющий границу экранного объекта по системе координат, заданной параметром targetCoordinateSpace, за исключением линий фигур.
DisplayObject
  
Преобразует объект Point из координат рабочей области (глобальных) в координаты экранного объекта (локальные).
DisplayObject
  
Преобразует двумерный объект Point из координат рабочей области (глобальных) в координаты экранного трехмерного объекта (локальные).
DisplayObject
 Inherited
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа.
EventDispatcher
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
  
Оценивает экранный объект, чтобы определить, перекрывает ли он экранный объект obj или пересекается с ним.
DisplayObject
  
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее.
DisplayObject
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
  
Преобразует трехмерный объект point из координат трехмерного экранного объекта (локальных) в двухмерный объект point с координатами рабочей области (глобальными).
DisplayObject
  
Преобразует объект point из координат экранного объекта (локальных) в координаты рабочей области (глобальные).
DisplayObject
  
DisplayObject
  
DisplayObject
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Удаляет прослушиватель из объекта EventDispatcher.
EventDispatcher
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
 Inherited
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа.
EventDispatcher
События
 Событие Сводка Определено
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным.EventDispatcher
  Отправляется, когда экранный объект добавляется в список отображения.DisplayObject
  Отправляется, когда экранный объект добавляется к списку отображения в рабочей области, либо непосредственно, либо путем добавления поддерева, содержащего экранный объект.DisplayObject
 Inherited[многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным.EventDispatcher
  [многоадресное событие] Отправляется, когда точка воспроизведения переходит в новый кадр.DisplayObject
  [многоадресное событие] Отправляется, когда точка воспроизведения покидает текущий кадр.DisplayObject
  [многоадресное событие] Отправляется после завершения работы конструкторов экранных объектов кадра до выполнения сценариев кадра.DisplayObject
  Отправляется перед удалением экранного объекта из списка отображения.DisplayObject
  Отправляется перед удалением экранного объекта из списка отображения, либо непосредственно, либо путем удаления поддерева, содержащего экранный объект.DisplayObject
  [многоадресное событие] Отправляется перед обновлением и визуализацией списка отображения.DisplayObject
Сведения о свойстве
accessibilityPropertiesсвойство
accessibilityProperties:AccessibilityProperties  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Текущие параметры специальных возможностей для данного экранного объекта. Если модифицируется свойство accessibilityProperties или любые поля в accessibilityProperties, необходимо вызвать метод Accessibility.updateProperties(), чтобы изменения вступили в силу.


Реализация
    public function get accessibilityProperties():AccessibilityProperties
    public function set accessibilityProperties(value:AccessibilityProperties):void

См. также


Пример
На следующем примере показывается, как присоединить простой объект AccessibilityProperties к экземпляру TextField.

import flash.text.TextField;
import flash.accessibility.AccessibilityProperties;
import flash.accessibility.Accessibility;
import flash.system.Capabilities;

var tf:TextField = new TextField();
tf.text = "hello";

var accessProps:AccessibilityProperties = new AccessibilityProperties();
accessProps.name = "Greeting";

tf.accessibilityProperties = accessProps;

if (Capabilities.hasAccessibility) {
    Accessibility.updateProperties();
}

trace(tf.accessibilityProperties.name); // Greeting
alphaсвойство 
alpha:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает значение альфа-прозрачности заданного объекта. Допустимые значения находятся в диапазоне 0 (полностью прозрачный) — 1 (полностью непрозрачный). Значение по умолчанию 1. Экранные объекты, для которых значение alpha равно 0, являются активными, несмотря на невидимость.


Реализация
    public function get alpha():Number
    public function set alpha(value:Number):void

Пример
Следующий код задает свойству спрайта alpha значение 50%, когда на него наводится мышь.
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFF0000);
circle.graphics.drawCircle(40, 40, 40);
addChild(circle);

circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject);
circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject);

function dimObject(event:MouseEvent):void {
    event.target.alpha = 0.5;
}

function restoreObject(event:MouseEvent):void {
    event.target.alpha = 1.0;
}
blendModeсвойство 
blendMode:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Значение класса BlendMode, задающее режим наложения. Растровое изображение может отрисовываться внутренними средствами двумя способами. Если включен режим наложения или внешняя маска обрезки, растровое изображение рисуется путем добавления квадрата, заполненного растровым изображением, для векторной визуализации. При попытке задать свойству недопустимое значение проигрыватель Flash Player использует значение BlendMode.NORMAL.

Flash Player применяет свойство blendMode к каждому пикселу экранного объекта. Каждый пиксел состоит из трех основных цветов (красного, зеленого и синего) со значениями в пределах 0x00 — 0xFF. Проигрыватель Flash Player сравнивает каждый составляющий цвет одного пиксела в фрагменте ролика с соответствующим цветом пиксела фона. Например, если blendMode имеет значение BlendMode.LIGHTEN, Flash Player сравнивает значение красного для экранного объекта с значением красного для фона, и использует более светлый из них в качестве красного компонента отображаемого цвета.

В следующей таблице описываются параметры blendMode. Класс BlendMode определяет строковые значения для использования. На иллюстрациях в таблице иллюстрируются значения blendMode, примененные к круглому экранному объекту (2), наложенному на другой экранный объект (1).

Квадрат № 1 Круг № 2

Константа BlendModeРисунокОписание
BlendMode.NORMALрежим наложения NORMAL (обычный)Экранный объект отображается перед фоном. Значения пикселов экранного объекта переопределяют значения пикселов фона. В прозрачных областях экранного объекта виден фон.
BlendMode.LAYERрежим наложения LAYER (слой)Инициирует создание группы прозрачности для экранного объекта. Это означает, что перед дальнейшей обработкой экранный объект сначала составляется во временном буфере. Это выполняется автоматически, если экранный объект заранее сохраняется в кэше посредством кэширования растрового изображения или если экранный объект является контейнером экранных объектов, содержащим хотя бы один дочерний объект с параметром blendMode не в значенииBlendMode.NORMAL.
BlendMode.MULTIPLYрежим наложения MULTIPLY (умножение)Умножает значения составляющих цветов экранного объекта на значения цветов фона и затем нормализует их путем деления на 0xFF, в результате чего получаются более темные цвета. Этот параметр часто используется для затенения и создания эффекта глубины.

Например, если составляющий цвет (например, красный) одного пиксела в экранном объекте и соответствующий цвет пиксела в фоне имеют значение 0х88, то в результате умножение получается 0х4840. Деление на 0хFF дает значение 0х48 для данного составляющего цвета, принимающего более темный оттенок, чем в экранном объекте и фоне.

BlendMode.SCREENрежим наложения SCREEN (экран)Умножает обратный код цвета экранного объекта на обратный код цвета фона, в результате чего получается эффект осветления. Этот параметр часто используется для высветления или удаления черных областей экранного объекта.
BlendMode.LIGHTENрежим наложения LIGHTENВыбирает более светлые из составляющих цветов экранного объекта и цвета фона (цвета с большими значениями). Этот параметр часто используется как тип наложения.

Например, если в экранном объекте есть пиксел со значением RGB, равным 0xFFCC33, а RGB пиксела фона имеет значение 0xDDF800, то значением RGB отображаемого пиксела является 0xFFF833 (так как 0xFF > 0xDD, 0xCC < 0xF8 и 0x33 > 0x00 = 33).

BlendMode.DARKENрежим наложения DARKENВыбирает более темные из составляющих цветов экранного объекта и цветов фона (цвета с меньшими значениями). Этот параметр часто используется как тип наложения.

Например, если в экранном объекте есть пиксел со значением RGB, равным 0xFFCC33, а RGB пиксела фона имеет значение 0xDDF800, то значением RGB отображаемого пиксела является 0xDDCC00 (так как 0xFF > 0xDD, 0xCC < 0xF8 и 0x33 > 0x00 = 33).

BlendMode.DIFFERENCEрежим наложения DIFFERENCEСравнивает составляющие цвета экранного объекта с цветами его фона и вычитает более темное значение (из двух составляющих цветов) из более светлого значения. Этот параметр часто используется для получения более живых цветов.

Например, если в экранном объекте есть пиксел со значением RGB, равным 0xFFCC33, а RGB пиксела фона имеет значение 0xDDF800, то значением RGB отображаемого пиксела является 0x222C33 (так как 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C и 0x33 - 0x00 = 0x33).

BlendMode.ADDрежим наложения ADDПрибавляет значения составляющих цветов экранного объекта к значениям цветов его фона (с максимальным значением 0xFF). Этот параметр часто используется для анимации растворения света между двумя объектами.

Например, если в экранном объекте есть пиксел со значением RGB, равным 0xAAA633, а RGB пиксела фона имеет значение 0xDD2200, то значением RGB отображаемого пиксела является 0xFFC833 (так как 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8 и 0x33 + 0x00 = 0x33).

BlendMode.SUBTRACTрежим наложения SUBTRACTВычитает значения составляющих цветов экранного объекта из значений цвета фона (с минимальным значением 0). Этот параметр часто используется для анимации растворения затемнения между двумя объектами.

Например, если в экранном объекте есть пиксел со значением RGB, равным 0xAA2233, а RGB пиксела фона имеет значение 0xAA2233, то значением RGB отображаемого пиксела является 0x338400 (так как 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84 и 0x00 - 0x33 < 0x00).

BlendMode.INVERTрежим наложения INVERTИнвертирует фон.
BlendMode.ALPHAрежим наложения ALPHAПрименяет значение альфа-канала каждого пиксела экранного объекта к фону. Для этого требуется, чтобы параметру blendMode родительского экранного объекта было задано значение BlendMode.LAYER. Например, на иллюстрации для родительского экранного объекта с белым фоном используется настройка blendMode = BlendMode.LAYER.
BlendMode.ERASEрежим наложения ERASEСтирает фон на основе значения альфа-канала экранного объекта. Для этого требуется, чтобы настройке blendMode родительского экранного объекта было задано значение BlendMode.LAYER. Например, на иллюстрации для родительского экранного объекта с белым фоном используется настройка blendMode = BlendMode.LAYER.
BlendMode.OVERLAYрежим наложения OVERLAYИзменяет цвет каждого пиксела на основе того, насколько темный цвет используется для фона. Если фон светлее 50-процентного серого, цвета экранного объекта и фона отфильтровываются, в результате чего получается более светлый цвет. Если фон темнее 50-процентного серого, цвета умножаются, что дает более темный цвет. Этот параметр часто используется для эффектов затенения.
BlendMode.HARDLIGHTрежим наложения HARDLIGHTИзменяет цвет каждого пиксела на основе того, насколько темный цвет используется для экранного объекта. Если экранный объект светлее 50-процентного серого, цвета экранного объекта и фона отфильтровываются, в результате чего получается более светлый цвет. Если экранный объект темнее 50-процентного серого, цвета умножаются, что дает более темный цвет. Этот параметр часто используется для эффектов затенения.
BlendMode.SHADERнетИзменяет цвета с использованием пользовательской подпрограммы затенения. Используемое затенение задано в качестве экземпляра Shader, присвоенного свойству blendShader. Применение свойства blendShader к экземпляру Shader автоматически приведет к смене значения свойства blendMode на BlendMode.SHADER. Если для свойства blendMode задано BlendMode.SHADER без предварительного задания свойства blendShader, то свойство blendMode примет значение BlendMode.NORMAL.


Реализация
    public function get blendMode():String
    public function set blendMode(value:String):void

См. также


Пример
Следующий код создает два объекта sprite, квадрат и круг: для круга (в фоне) задается режим наложенияBlendMode.SUBTRACT, когда на него наводится указатель.
import flash.display.Sprite;
import flash.display.BlendMode;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF88CC);
square.graphics.drawRect(0, 0, 80, 80);
addChild(square);

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xAA0022);
circle.graphics.drawCircle(40, 40, 40);
addChild(circle);

circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject);
circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject);

function dimObject(event:MouseEvent):void {
    event.target.blendMode = BlendMode.SUBTRACT;
}

function restoreObject(event:MouseEvent):void {
    event.target.blendMode = BlendMode.NORMAL;
}
blendShaderсвойство 
blendShader:Shader  [только для записи]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Задает затенение, используемое при наложении переднего плана на фон. Если свойство blendMode настроено на BlendMode.SHADER, то в качестве выхода режима наложения для экранного объекта используется объект Shader.

Применение свойства blendShader к экземпляру Shader автоматически приведет к смене значения свойства blendMode на BlendMode.SHADER. Если же свойство blendShader настроено (свойство blendMode принимает значение BlendMode.SHADER), то значение свойства blendMode изменяется. Режим наложения можно быстро перенастроить на использование затенения для наложения, задав свойству blendMode значение BlendMode.SHADER. Необходимость в повторной настройке свойства blendShader отсутствует, кроме тех случаев, когда требуется сменить затенение, используемое для режима наложения.

Присвоенный свойству blendShader объект Shader должен задавать как минимум пару входов image4. Указывать входы в коде с помощью свойств input связанных объектов ShaderInput необходимости нет. В качестве первого входного изображения используется экранный объект на заднем плане (вход со значением index 0). В качестве второго входного изображения используется экранный объект на переднем плане (вход со значением index 1). Затенение, используемое в качестве затенения наложения, может задавать больше двух входов. В этом случае все дополнительные входы следует задавать в свойстве input объекта ShaderInput.

При присвоении данному свойству экземпляра объекта Shader происходит копирование затенения на внутреннем уровне. При выполнении операции наложения используется эта копия, а не ссылка за исходное затенение. Изменения параметров затенения (изменение значения параметра, ввода или байт-кода) не влияют на используемую для наложения копию затенения.


Реализация
    flash10 function set blendShader(value:Shader):void

Выдает
ArgumentError — Если тип выхода затенения не совместим с данной операцией (затенение должно задать выходpixel4).
 
ArgumentError — Если затенение задает меньше двух входных изображений, или если первые два входа не являются входами image4.
 
ArgumentError — Если затенение задает неподдерживаемое входное изображение.
 
ArgumentError — Если объект ByteArray или Vector.В качестве ввода используется экземпляр <Number>, а свойства width и height для ShaderInput не указаны, либо указанные значения не соответствуют количеству данных во входном объекте. Дополнительные сведения см. в описании ShaderInput.input.

См. также

cacheAsBitmapсвойство 
cacheAsBitmap:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

При значении true проигрыватель Flash Player кэширует внутреннее растровое представление экранного объекта. Такое кэширование может повысить производительность для экранных объектов со сложным векторным содержимым.

Все векторные данные для экранного объекта, имеющего кэшированный растр, отрисовываются в растровом изображении, а не в основной области отображения. Затем это растровое изображение копируется в основную область отображения в виде пикселов без растяжений и поворотов, которые привязываются к ближайшим пиксельным границам. Пикселы отображаются в точном соответствии с родительским объектом. При изменении границ растрового изображения оно не растягивается, а создается повторно.

Внутреннее растровое представление создается, только если свойство cacheAsBitmap имеет значение true.

После задания свойству cacheAsBitmap значения true визуализация остается без изменений, однако экранный объект автоматически выполняет привязку к пикселам. Скорость анимации может значительно увеличиться в зависимости от сложности векторного содержимого

Свойство cacheAsBitmap автоматически получает значение true каждый раз, когда к экранному объекту применяется фильтр (при непустом массиве filter). Если к экранному объекту применяется, его свойство cacheAsBitmap отражается в значении true, даже если ему было задано значение false. Если удалить все фильтры экранного объекта, параметр cacheAsBitmap вернется к последнему заданному значению.

В следующих случаях экранный объект не использует растровое изображение, даже если свойство cacheAsBitmap имеет значение true, а вместо этого визуализирует векторные данные:

Свойство cacheAsBitmap лучше всего использовать для фрагментов роликов, в которых преобладает статичное содержимое и редко используется масштабирование и поворот. Использование в таких фрагментах роликов свойства cacheAsBitmap может повысить производительность при преобразовании фрагмента ролика (при изменении координат x и y).


Реализация
    public function get cacheAsBitmap():Boolean
    public function set cacheAsBitmap(value:Boolean):void

См. также


Пример
В следующем примере к экземпляру Shape применяется тень. Затем отслеживается значение свойства cacheAsBitmap, которое получает значение true при применении фильтра.
import flash.display.Sprite;
import flash.filters.DropShadowFilter

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xAA0022);
circle.graphics.drawCircle(40, 40, 40);

addChild(circle);

trace(circle.cacheAsBitmap); // false

var filter:DropShadowFilter = new DropShadowFilter();
circle.filters = [filter];

trace(circle.cacheAsBitmap); // true
filtersсвойство 
filters:Array  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. Пакет flash.filters содержит несколько классов, определяющих конкретные фильтры, доступные для использования.

Фильтры можно применять в ходе работы в инструменте разработки Flash или во время выполнения с использованием кода ActionScript. Чтобы применить фильтр с помощью ActionScript, необходимо создать временную копию всего массива filters, внести в нее необходимые изменения, а затем присвоить полученное значение исходному массиву filters. Нельзя добавлять новый объект filter напрямую в массив filters.

Чтобы добавить фильтр с помощью ActionScript, выполните следующие действия (предположим, что целевой экранный объект называется myDisplayObject).

  1. Создайте новый объект filter с помощью метода конструктора выбранного класса фильтра.
  2. Присвойте значение массива myDisplayObject.filters временному массиву, например массиву с именем myFilters.
  3. Добавьте новый объект filter во временный массив myFilters.
  4. Присвойте значение временного массива массивуmyDisplayObject.filters.

Если массив filters не определен, то временный массив использовать не требуется. Вместо этого можно напрямую присвоить литерал массива, содержащий один или несколько созданных вами объектов filter. В первом примере раздела "Примеры" добавляется фильтр "Тень" с помощью кода, обрабатывающего определенный и неопределенный массивы filters.

Чтобы изменить существующий объект filter, необходимо использовать прием изменения копии массива filters.

  1. Присвойте значение массива filters временному массиву, например массиву с именем myFilters.
  2. Модифицируйте свойство с помощью временного массива с именем myFilters. Например, чтобы настроить свойство quality первого фильтра массива, можно использовать следующий код: myFilters[0].quality = 1;
  3. Присвойте значение временного массива массивуfilters.

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

Пакет flash.filters включает классы фильтров. Например, чтобы создать фильтр DropShadow, необходимо использовать код:

     import flash.filters.DropShadowFilter
     var myFilter:DropShadowFilter = new DropShadowFilter (distance, angle, color, alpha, blurX, blurY, quality, inner, knockout)
     

Можно использовать оператор is, чтобы определить тип фильтра, присвоенного для каждой позиции индекса в массиве filter. На примере следующего кода показывается, как определить положение первого фильтра в массиве filters — DropShadowFilter.

     import flash.text.TextField;
     import flash.filters.*;
     var tf:TextField = new TextField();
     var filter1:DropShadowFilter = new DropShadowFilter();
     var filter2:GradientGlowFilter = new GradientGlowFilter();
     tf.filters = [filter1, filter2];
     
     tf.text = "DropShadow index: " + filterPosition(tf, DropShadowFilter).toString(); // 0
     addChild(tf)
     
     function filterPosition(displayObject:DisplayObject, filterClass:Class):int {
         for (var i:uint = 0; i < displayObject.filters.length; i++) {
             if (displayObject.filters[i] is filterClass) {
                 return i;
             }
         }
         return -1;
     }
     

Примечание. Так как нельзя добавить новый объект filter напрямую в массив DisplayObject.filters, следующий код не окажет действия на целевой экранный объект с именемmyDisplayObject.

     myDisplayObject.filters.push(myDropShadow);
     


Реализация
    public function get filters():Array
    public function set filters(value:Array):void

Выдает
ArgumentError — Если в filters входит ShaderFilter, и тип выхода затенения не совместим с данной операцией (затенение должно задать выход pixel4).
 
ArgumentError — Если в filters входит ShaderFilter, и затенение не задает ни одного входного изображения, или если первичный вход не является входом pixel4).
 
ArgumentError — Если в filters входит ShaderFilter, и затенение задает неподдерживаемое входное изображение.
 
ArgumentError — Если в filters входит ShaderFilter, ByteArray или Vector.В качестве ввода затенения используется экземпляр <Number>, а свойства width и height для ShaderInput не указаны или не соответствуют входным данным.. Дополнительные сведения см. в описании ShaderInput.input.

См. также

heightсвойство 
height:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает высоту экранного объекта в пикселах. Высота вычисляется на основе границ содержимого экранного объекта. Когда задается свойство height, соответствующим образом изменяется и свойство scaleY, как показано в следующем коде.

    var rect:Shape = new Shape();
    rect.graphics.beginFill(0xFF0000);
    rect.graphics.drawRect(0, 0, 100, 100);
    trace(rect.scaleY) // 1;
    rect.height = 200;
    trace(rect.scaleY) // 2;

За исключением объектов TextField и Video, экранные объекты без содержимого (например, пустой спрайт), имеют высоту 0, даже если задать свойству height другое значение.


Реализация
    public function get height():Number
    public function set height(value:Number):void

Пример
Следующий код создает два объекта TextField и изменяет свойство height каждого из них на основе их свойства textHeight; также путем задания свойства y определяется положение второго текстового поля.
import flash.text.TextField;

var tf1:TextField = new TextField();
tf1.text = "Text Field 1";
tf1.border = true;
tf1.wordWrap = true;
tf1.width = 40;
tf1.height = tf1.textHeight + 5;
addChild(tf1);

var tf2:TextField = new TextField();
tf2.text = "Text Field 2";
tf2.border = true;
tf2.wordWrap = true;
tf2.width = 40;
tf2.height = tf2.textHeight + 5;
tf2.y = tf1.y + tf1.height + 5;
addChild(tf2);
loaderInfoсвойство 
loaderInfo:LoaderInfo  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект. Свойство loaderInfo определяется только для корневого экранного объекта SWF-файла или для загруженного объекта Bitmap (а не нарисованного с помощью ActionScript). Чтобы найти объект loaderInfo, связанный с SWF-файлом, содержащим экранный объект с именем myDisplayObject, используйте myDisplayObject.root.loaderInfo.

Загрузку большого SWF-файла можно отслеживать с помощью метода this.root.loaderInfo.addEventListener(Event.COMPLETE, func).


Реализация
    public function get loaderInfo():LoaderInfo

См. также


Пример
Следующий код предполагает, что this относится к экранному объекту. Код выдает URL корневого SWF-файла для экранного объекта.
 trace (this.loaderInfo.url);
 
maskсвойство 
mask:DisplayObject  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Вызывающий экранный объект маскируется заданным объектом mask. Чтобы обеспечить маскирование при масштабировании рабочей области, экранный объект mask должен быть активным элементом списка отображения. Сам объект mask не отрисовывается. Чтобы удалить маску, нужно задать для mask значение null.

Чтобы обеспечить масштабирование объекта mask, его необходимо добавить в список отображения. Чтобы обеспечить возможность перетаскивания маскирующего объекта Sprite (вызовом методаstartDrag()), его необходимо добавить в список отображения. Чтобы вызвать метод startDrag() для маскирующего спрайта при отправке им события mouseDown, задайте свойству спрайта buttonMode свойство true.

Примечание. Один объект mask не может использоваться для маскирования нескольких вызывающих экранных объектов. Когда mask назначается второму экранному объекту, он перестает быть маской первого, для которого свойство mask получает значение null.


Реализация
    public function get mask():DisplayObject
    public function set mask(value:DisplayObject):void

Пример
Следующий код создает объект TextField и объект Sprite, назначенный в качестве маски объекту TextField. Когда пользователь щелкает текстовое поле, прослушиватель событий drag() вызывает метод startDrag() маскирующего объекта Sprite.
import flash.text.TextField;
import flash.display.Sprite;
import flash.events.MouseEvent;

var tf:TextField = new TextField();
tf.text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " 
            + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "
tf.selectable = false;
tf.wordWrap = true;
tf.width = 150;
addChild(tf);

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF0000);
square.graphics.drawRect(0, 0, 40, 40);
addChild(square);

tf.mask = square;

tf.addEventListener(MouseEvent.MOUSE_DOWN, drag);
tf.addEventListener(MouseEvent.MOUSE_UP, noDrag);

function drag(event:MouseEvent):void {
    square.startDrag();
}
function noDrag(event:MouseEvent):void {
    square.stopDrag();
}
mouseXсвойство 
mouseX:Number  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает координату x положения курсора мыши (в пикселах).


Реализация
    public function get mouseX():Number

Пример
Следующий код создает объект Sprite и отслеживает положения mouseX и mouseY, когда пользователь щелкает спрайт.
import flash.display.Sprite;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF0000);
square.graphics.drawRect(0, 0, 200, 200);
addChild(square);

square.addEventListener(MouseEvent.CLICK, traceCoordinates);

function traceCoordinates(event:MouseEvent):void {
    trace(square.mouseX, square.mouseY);
}
mouseYсвойство 
mouseY:Number  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает координату y положения курсора мыши (в пикселах).


Реализация
    public function get mouseY():Number

Пример
Следующий код создает объект Sprite и отслеживает положения mouseX и mouseY, когда пользователь щелкает спрайт.
import flash.display.Sprite;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF0000);
square.graphics.drawRect(0, 0, 200, 200);
addChild(square);

square.addEventListener(MouseEvent.CLICK, traceCoordinates);

function traceCoordinates(event:MouseEvent):void {
    trace(square.mouseX, square.mouseY);
}
nameсвойство 
name:String  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает имя экземпляра DisplayObject. Объект можно найти в списке потомков родительского контейнера экранных объектов путем вызова метода getChildByName() контейнера.


Реализация
    public function get name():String
    public function set name(value:String):void

Выдает
IllegalOperationError — При попытке задать это свойство для объекта, помещенного на временную шкалу инструмента разработки Flash.

Пример
Следующий код создает два объекта Sprite и отслеживает соответствующее свойство name, когда пользователь щелкает один из них.
import flash.display.Sprite;
import flash.events.MouseEvent;

var circle1:Sprite = new Sprite();
circle1.graphics.beginFill(0xFF0000);
circle1.graphics.drawCircle(40, 40, 40);
circle1.name = "circle1";
addChild(circle1);
circle1.addEventListener(MouseEvent.CLICK, traceName);

var circle2:Sprite = new Sprite();
circle2.graphics.beginFill(0x0000FF);
circle2.graphics.drawCircle(140, 40, 40);
circle2.name = "circle2";
addChild(circle2);
circle2.addEventListener(MouseEvent.CLICK, traceName);

function traceName(event:MouseEvent):void {
    trace(event.target.name);
}
opaqueBackgroundсвойство 
opaqueBackground:Object  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Определяет, является ли экранный объект непрозрачным с определенным цветом фона. Прозрачное растровое изображение содержит данные альфа-канала и рисуется прозрачным. Непрозрачное растровое изображение не имеет альфа-канала (и визуализируется быстрее, чем прозрачное изображение). Если растровое изображение непрозрачное, требуется задать для него собственный цвет фона.

Если задать численное значение, поверхность будет непрозрачной, а RGB-цвет фона будет соответствовать заданному числу. Если оставить значение по умолчанию null, у экранного объекта будет прозрачный фон.

Свойство opaqueBackground предназначено, главным образом, для использования вместе со свойством cacheAsBitmap с целью оптимизации визуализации. Для экранных объектов со свойством cacheAsBitmap в значении true настройка свойства opaqueBackground может повысить производительность.

Непрозрачная область фона не сопоставляется при вызове метода hitTestPoint() с параметром shapeFlag в значении true.

Непрозрачная область фона не реагирует на события мыши.


Реализация
    public function get opaqueBackground():Object
    public function set opaqueBackground(value:Object):void

См. также


Пример
Следующий код создает объект Shape с синим кругом и задает свойству opaqueBackground значение 0xFF0000 (красный).
import flash.display.Shape;

var circle:Shape = new Shape();
circle.graphics.beginFill(0x0000FF);
circle.graphics.drawCircle(40, 40, 40);
circle.opaqueBackground = 0xFF0000;
addChild(circle);
parentсвойство 
parent:DisplayObjectContainer  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает объект DisplayObjectContainer, содержащий данный экранный объект. Используйте свойство parent, чтобы задать относительный путь к экранным объектам, находящиеся на более высоких уровнях иерархии списка отображения, чем текущий объект.

Свойство parent можно использовать для перемещения объекта вверх на несколько уровней в списке отображения, как показано ниже.

     this.parent.parent.alpha = 20;
     


Реализация
    public function get parent():DisplayObjectContainer

Выдает
SecurityError — Данный дочерний экранный объект принадлежит изолированной программной среде, к которой нет доступа. Чтобы избежать такой ситуации, родительский ролик должен вызвать метод Security.allowDomain().

Пример
Следующий код создает три объекта Sprite; на его примере видно, как свойство parent отражает иерархию списка отображения.

import flash.display.Sprite;

var sprite1:Sprite = new Sprite();
sprite1.name = "sprite1";
var sprite2:Sprite = new Sprite();
sprite2.name = "sprite2";
var sprite3:Sprite = new Sprite();
sprite3.name = "sprite3";

sprite1.addChild(sprite2);
sprite2.addChild(sprite3);

trace(sprite2.parent.name); // sprite1
trace(sprite3.parent.name); // sprite2
trace(sprite3.parent.parent.name); // sprite1
rootсвойство 
root:DisplayObject  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

В случае с экранным объектом в загруженном SWF-файле свойством root является самый верхний экранный объект в части структуры дерева списка отображения, представленной этим SWF-файлом. Для объекта Bitmap, представляющего файл загруженного изображения, свойством root является сам объект Bitmap. Для экземпляра основного класса первого загруженного SWF-файла свойством root является сам экранный объект. Свойство root объекта Stage является сам объект Stage. Свойств root имеет значение null для экранных объектов, не добавленных в список отображения, если они не добавлены в контейнер экранных объектов, не включенный в список отображения, но являющийся потомком экранного объекта верхнего уровня в загруженном SWF-файле.

Например, если создается новый объект Sprite путем вызова метода конструктора Sprite(), его свойство root имеет значение null до тех пор, пока он не будет добавлен в список отображения (или в контейнер экранных объектов, не включенный в список отображения, но являющийся потомком экранного объекта верхнего уровня в SWF-файле).

Для загруженного SWF-файла, несмотря на то, что объект Loader, использованный для загрузки, может не входить в список отображения, свойством root экранного объекта верхнего уровня этого файла является сам объект. Свойство root объекта Loader не задается, пока он не будет добавлен в качестве потомка экранного объекта, для которого уже задано свойство root.


Реализация
    public function get root():DisplayObject

Пример
На примере следующего кода показано различие между свойствами root объекта Stage, незагруженного экранного объекта (Loader) (до и после добавления в список отображения) и загруженного объекта (Bitmap).
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;

trace(stage.root); // [object Stage]

var ldr:Loader = new Loader();
trace (ldr.root); // null

addChild(ldr); 
trace (ldr.root); // [object ...]

var urlReq:URLRequest = new URLRequest("example.jpg");
ldr.load(urlReq);

ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);

function loaded(event:Event):void {
    trace(ldr.content.root); // [object Bitmap]
}
rotationсвойство 
rotation:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает поворот экземпляра DisplayObject относительно его исходной ориентации (в градусах). Значения от 0 до 180 представляют поворот по часовой стрелке. Значения от 0 до -180 представляют поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения. Например, инструкция my_video.rotation = 450 равносильна my_video.rotation = 90.


Реализация
    public function get rotation():Number
    public function set rotation(value:Number):void

Пример
В следующем примере создается объект Sprite, который поворачивается при щелчке пользователя.

import flash.display.Sprite;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFFCC00);
square.graphics.drawRect(-50, -50, 100, 100);
square.x = 150;
square.y = 150;
addChild(square);

square.addEventListener(MouseEvent.CLICK, rotate);

function rotate(event:MouseEvent):void {
        square.rotation += 15;
}
rotationXсвойство 
rotationX:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Обозначает поворот в градусах по оси x экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. Значения от 0 до 180 представляют поворот по часовой стрелке. Значения от 0 до -180 представляют поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.


Реализация
    flash10 function get rotationX():Number
    flash10 function set rotationX(value:Number):void

Пример
В данном примере два эллипса вращаются в соответствии со значениями свойств rotationX и rotationY. Точка регистрации первого эллипса находится в центре. Он вращается вокруг своей оси. Второй эллипс вращается вокруг внешней точки.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.geom.*;
    import flash.display.Graphics;
    import flash.events.TimerEvent;
    import flash.utils.Timer;

    public class RotationExample1 extends MovieClip {
        private var ellipse:Shape = new Shape();
        private var speed:int = 10;
        private var ellipse1:Shape;
        private var ellipse2:Shape;
        
        public function RotationExample1():void {

            ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), 
                                    (this.stage.stageHeight / 2));
            
            ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), 
                                          (this.stage.stageHeight / 2));

            this.addChild(ellipse1);
            this.addChild(ellipse2);

            var t:Timer = new Timer(50);
            t.addEventListener(TimerEvent.TIMER, timerHandler);
            t.start();
        }

        private function drawEllipse(x1, y1, x2, y2):Shape {
        
            var e:Shape = new Shape();
            e.graphics.beginFill(0xFF0000);
            e.graphics.lineStyle(2);
            e.graphics.drawEllipse(x1, y1, 100, 80);
            e.graphics.endFill();

            e.x  = x2;  
            e.y  = y2;
            e.z = 1;
            return e;
        }

        private function timerHandler(event:TimerEvent):void {
            ellipse1.rotationY += speed;    
            ellipse1.rotationX -= speed;

            ellipse2.rotationY += speed;    
            ellipse2.rotationX -= speed;
        }
    }
}
rotationYсвойство 
rotationY:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Обозначает поворот в градусах по оси у экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. Значения от 0 до 180 представляют поворот по часовой стрелке. Значения от 0 до -180 представляют поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.


Реализация
    flash10 function get rotationY():Number
    flash10 function set rotationY(value:Number):void

Пример
В данном примере два эллипса вращаются в соответствии со значениями свойств rotationX и rotationY. Точка регистрации первого эллипса находится в центре. Он вращается вокруг своей оси. Второй эллипс вращается вокруг внешней точки.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.geom.*;
    import flash.display.Graphics;
    import flash.events.TimerEvent;
    import flash.utils.Timer;

    public class RotationExample1 extends MovieClip {
        private var ellipse:Shape = new Shape();
        private var speed:int = 10;
        private var ellipse1:Shape;
        private var ellipse2:Shape;
        
        public function RotationExample1():void {

            ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), 
                                    (this.stage.stageHeight / 2));
            
            ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), 
                                          (this.stage.stageHeight / 2));

            this.addChild(ellipse1);
            this.addChild(ellipse2);

            var t:Timer = new Timer(50);
            t.addEventListener(TimerEvent.TIMER, timerHandler);
            t.start();
        }

        private function drawEllipse(x1, y1, x2, y2):Shape {
        
            var e:Shape = new Shape();
            e.graphics.beginFill(0xFF0000);
            e.graphics.lineStyle(2);
            e.graphics.drawEllipse(x1, y1, 100, 80);
            e.graphics.endFill();

            e.x  = x2;  
            e.y  = y2;
            e.z = 1;
            return e;
        }

        private function timerHandler(event:TimerEvent):void {
            ellipse1.rotationY += speed;    
            ellipse1.rotationX -= speed;

            ellipse2.rotationY += speed;    
            ellipse2.rotationX -= speed;
        }
    }
}
rotationZсвойство 
rotationZ:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Обозначает поворот в градусах по оси z экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. Значения от 0 до 180 представляют поворот по часовой стрелке. Значения от 0 до -180 представляют поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.


Реализация
    flash10 function get rotationZ():Number
    flash10 function set rotationZ(value:Number):void
scale9Gridсвойство 
scale9Grid:Rectangle  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Текущая активная сетка масштабирования. Если значение — null, весь экранный объект масштабируется нормально при применении любых преобразований масштаба.

При определении свойства scale9Grid экранный объект разбивается на сетку с девятью областями на основе прямоугольника scale9Grid, определяющего центральную область сетки. Восемь остальных областей сетки:

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

При масштабировании экранного объекта с заданным свойством scale9Grid текст и градиенты масштабируются в обычном порядке, однако к остальным типам объектов применяются следующие правила.

При повороте экранного объекта последующее масштабирование выполняется в обычном режиме (и свойство scale9Grid игнорируется).

В качестве примера рассмотрим следующий экранный объект и прямоугольник, примененный в качестве его свойства scale9Grid

изображение экранного объекта

Экранный объект.

область scale 9 экранного объекта

Красный прямоугольник показывает scale9Grid.

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

Масштабируется до 75%экранный объект на 75%
Масштабируется до 50%экранный объект на 50%
Масштабируется до 25%экранный объект на 25%
Вытягивается по горизонтали до 150% экранный объект, растянутый до 150%

Общее правило задания scale9Grid: необходимо задать экранный объект для использования в качестве компонента, краевые области которого сохраняют одинаковую ширину при масштабировании.


Реализация
    public function get scale9Grid():Rectangle
    public function set scale9Grid(value:Rectangle):void

Выдает
ArgumentError — Если методу передается недопустимый аргумент.

См. также


Пример
Следующий код создает объект Shape, в свойстве graphics которого отрисовывается прямоугольник. Прямоугольник имеет границу шириной 20 пикселов и заполнен градиентом. Событие timer вызывает функцию scale(), которая масштабирует объект Shape путем корректировки свойств scaleX и scaleY. Применение scale9Grid к объекту Shape предотвращает масштабирование линии границы прямоугольника — масштабируется только заливка градиентом.

import flash.display.Shape;
import flash.display.GradientType;
import flash.display.SpreadMethod;
import flash.display.InterpolationMethod;
import flash.geom.Matrix;
import flash.geom.Rectangle;
import flash.utils.Timer;
import flash.events.TimerEvent;

var square:Shape = new Shape();
square.graphics.lineStyle(20, 0xFFCC00);
var gradientMatrix:Matrix = new Matrix();
gradientMatrix.createGradientBox(15, 15, Math.PI, 10, 10);
square.graphics.beginGradientFill(GradientType.RADIAL, 
            [0xffff00, 0x0000ff], 
            [100, 100], 
            [0, 0xFF], 
            gradientMatrix, 
            SpreadMethod.REFLECT, 
            InterpolationMethod.RGB, 
            0.9);
square.graphics.drawRect(0, 0, 100, 100);

var grid:Rectangle = new Rectangle(20, 20, 60, 60);
square.scale9Grid = grid ;

addChild(square);

var tim:Timer = new Timer(100);
tim.start();
tim.addEventListener(TimerEvent.TIMER, scale);

var scaleFactor:Number = 1.01;

function scale(event:TimerEvent):void {
    square.scaleX *= scaleFactor;
    square.scaleY *= scaleFactor;
    
    if (square.scaleX > 2.0) {
        scaleFactor = 0.99;
    }
    if (square.scaleX < 1.0) {
        scaleFactor = 1.01;
    }
}
scaleXсвойство 
scaleX:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает горизонтальное масштабирование объекта от точки регистрации (в процентах). Точка регистрации по умолчанию — (0, 0). 1,0 равняется масштабу 100%.

Масштабирование локальной системы координат изменяет значения свойств x и y, определяемые в целых пикселах.


Реализация
    public function get scaleX():Number
    public function set scaleX(value:Number):void

Пример
Следующий код создает объект Sprite, в свойстве graphics которого отрисовывается прямоугольник. При щелчке пользователя спрайт масштабируется на 10%.

import flash.display.Sprite;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFFCC00);
square.graphics.drawRect(0, 0, 100, 100);
addChild(square);

square.addEventListener(MouseEvent.CLICK, scale);

function scale(event:MouseEvent):void {
    square.scaleX *= 1.10;
    square.scaleY *= 1.10;
}
scaleYсвойство 
scaleY:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает вертикальное масштабирование объекта от точки регистрации (в процентах). Точка регистрации по умолчанию — (0, 0). 1,0 равняется масштабу 100%.

Масштабирование локальной системы координат изменяет значения свойств x и y, определяемые в целых пикселах.


Реализация
    public function get scaleY():Number
    public function set scaleY(value:Number):void

Пример
Следующий код создает объект Sprite, в свойстве graphics которого отрисовывается прямоугольник. При щелчке пользователя спрайт масштабируется на 10%.

import flash.display.Sprite;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFFCC00);
square.graphics.drawRect(0, 0, 100, 100);
addChild(square);

square.addEventListener(MouseEvent.CLICK, scale);

function scale(event:MouseEvent):void {
    square.scaleX *= 1.10;
    square.scaleY *= 1.10;
}
scaleZсвойство 
scaleZ:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает масштабирование глубины объекта (в процентах) относительно точки регистрации этого объекта. Точка регистрации по умолчанию — (0, 0). 1,0 равняется масштабу 100%.

Масштабирование локальной системы координат изменяет значения свойств x, y и z, определяемые в целых пикселах.


Реализация
    flash10 function get scaleZ():Number
    flash10 function set scaleZ(value:Number):void

См. также

scrollRectсвойство 
scrollRect:Rectangle  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Прямоугольная область прокрутки экранного объекта. Экранный объект обрезается до размера, определенного прямоугольником, и прокручивается в его границах при изменении свойств x и y объекта scrollRect.

Свойства объекта scrollRect объекта Rectangle используют координатную плоскость экранного объекта и масштабируются просто как общий экранный объект. Углы обрезанного окна на экранном объекте прокрутки являются исходной точкой экранного объекта (0,0) и точкой, определенной шириной и высотой прямоугольника. Они не центрируются по исходной точке, а используют ее для определения верхнего левого угла области. Прокручиваемый экранный объект всегда прокручивается прибавлениями по целым пикселам.

Можно прокручивать объект влево и вправо, настроив свойство x для scrollRect объекта Rectangle. Чтобы прокручивать объект вверх и вниз, нужно настроить свойство у для scrollRect объекта Rectangle. Если экранный объект, повернутый на 90°, прокручивается влево и вправо, на самом деле экранный объект прокручивается вверх и вниз.


Реализация
    public function get scrollRect():Rectangle
    public function set scrollRect(value:Rectangle):void

См. также


Пример
Далее показан пример того, как свойство scrollRect задает область прокрутки экранного объекта circle. При щелчке по объекту circle метод обработчика событий clicked() корректирует свойство y свойства scrollRect объекта circle, в результате чего осуществляется прокрутка вниз.

import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.events.MouseEvent;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(200, 200, 200);
circle.scrollRect = new Rectangle(0, 0, 200, 200);
addChild(circle);

circle.addEventListener(MouseEvent.CLICK, clicked);

function clicked(event:MouseEvent):void {
    var rect:Rectangle = event.target.scrollRect;
    rect.y -= 5;
    event.target.scrollRect = rect;
}
stageсвойство 
stage:Stage  [только для чтения]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Класс Stage экранного объекта. Приложение Flash имеет только один объект Stage. Например, можно создать и загрузить в список отображения несколько экранных объектов, и для каждого из них свойство stage будет ссылаться на один и тот же объект Stage (даже если экранный объект принадлежит загруженному SWF-файлу).

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


Реализация
    public function get stage():Stage

Пример
Следующий код создает два объекта TextField и использует свойство width объекта Stage для размещения текстовых полей.

import flash.text.TextField;

var tf1:TextField = new TextField();
tf1.text = "Text Field 1";
tf1.border = true;
tf1.x = 10;
addChild(tf1);
tf1.width = tf1.stage.stageWidth / 2 - 10;

var tf2:TextField = new TextField();
tf2.text = "Text Field 2";
tf2.border = true;
tf2.x = tf1.x + tf1.width + 5;
addChild(tf2);
tf2.width = tf2.stage.stageWidth / 2 - 10;

trace(stage.stageWidth);
transformсвойство 
transform:Transform  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта. Конкретные свойства (matrix, colorTransform и три свойства только для чтения (concatenatedMatrix, concatenatedColorTransform и pixelBounds)) описываются в разделе, посвященном классу Transform.

Каждое из свойств объекта transform представляет собой объект. Это очень важно, так как единственным способом задать новые значения для объектов matrix или colorTransform является создание нового объекта и его копирование в свойство transform.matrix или transform.colorTransform.

Например, чтобы увеличить значение tx матрицы экранного объекта, необходимо скопировать весь объект matrix, а затем копировать новый объект в свойство matrix объекта transform.


    var myMatrix:Object = myDisplayObject.transform.matrix;  
    myMatrix.tx += 10; 
    myDisplayObject.transform.matrix = myMatrix;  
    

Свойство tx нельзя задавать напрямую. Следующий код не действует на myDisplayObject.


    myDisplayObject.transform.matrix.tx += 10;
    

Также можно копировать весь объект transform и назначить его свойству transform другого экранного объекта. Например, следующий код копирует весь объект transform object из myOldDisplayObj в myNewDisplayObj.

myNewDisplayObj.transform = myOldDisplayObj.transform;

Полученный экранный объект, myNewDisplayObj, теперь имеет те же значения для матрицы, преобразования цвета и пиксельных границ, что и старый экранный объект, myOldDisplayObj.


Реализация
    public function get transform():Transform
    public function set transform(value:Transform):void

См. также


Пример
Следующий код создает объект Sprite с именем square. Когда пользователь щелкает спрайт, метод transformer() корректирует свойства colorTransform и matrix свойства transform для спрайта.

import flash.display.Sprite;
import flash.geom.ColorTransform;
import flash.geom.Matrix;
import flash.geom.Transform;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.lineStyle(20, 0xFF2200);
square.graphics.beginFill(0x0000DD);
square.graphics.drawRect(0, 0, 100, 100);
addChild(square);

var resultColorTransform:ColorTransform = new ColorTransform();
resultColorTransform.alphaMultiplier = 0.5;
resultColorTransform.redOffset = 155;
resultColorTransform.greenMultiplier = 0.5;

var skewMatrix:Matrix = new Matrix(1, 1, 0, 1);

square.addEventListener(MouseEvent.CLICK, transformer);

function transformer(event:MouseEvent):void {
    var transformation:Transform = square.transform;
    var tempMatrix:Matrix = square.transform.matrix;
    tempMatrix.concat(skewMatrix);
    square.transform.colorTransform = resultColorTransform;
    
    square.transform.matrix = tempMatrix;
}
visibleсвойство 
visible:Boolean  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Определяет видимость экранного объекта. Невидимые экранные объекты отключаются. Например, если visible=false для экземпляра InteractiveObject, то он не реагирует на щелчки мыши.


Реализация
    public function get visible():Boolean
    public function set visible(value:Boolean):void

Пример
В следующем коде используется объект Timer для вызова функции visible, которая периодически изменяет свойство экранного объекта, в результате чего создается эффект мигания.

import flash.text.TextField;
import flash.utils.Timer;
import flash.events.TimerEvent;

var tf:TextField = new TextField();
tf.text = "Hello.";
addChild(tf);

var tim:Timer = new Timer(250);
tim.start();
tim.addEventListener(TimerEvent.TIMER, blinker);

function blinker(event:TimerEvent):void {
    tf.visible = !tf.visible;
}
widthсвойство 
width:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает ширину экранного объекта в пикселах. Ширина вычисляется на основе границ содержимого экранного объекта. Когда задается свойство width, соответствующим образом изменяется и свойство scaleX, как показано в следующем коде.

    var rect:Shape = new Shape();
    rect.graphics.beginFill(0xFF0000);
    rect.graphics.drawRect(0, 0, 100, 100);
    trace(rect.scaleX) // 1;
    rect.width = 200;
    trace(rect.scaleX) // 2;

За исключением объектов TextField и Video, экранные объекты без содержимого (например, пустой спрайт), имеют ширину 0, даже если задать свойству width другое значение.


Реализация
    public function get width():Number
    public function set width(value:Number):void

Пример
Следующий код создает объект Sprite с именем square. Когда пользователь щелкает спрайт, метод widen() увеличивает значение его свойства width.

import flash.display.Sprite;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF0000);
square.graphics.drawRect(0, 0, 100, 100);
addChild(square);

square.addEventListener(MouseEvent.CLICK, widen);

function widen(event:MouseEvent):void {
    square.width += 10;
}
xсвойство 
x:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. Если объект включен в DisplayObjectContainer с преобразованиями, то он находится в локальной системе координат содержащего его DisplayObjectContainer. Таким образом, если объект DisplayObjectContainer повернут на 90° по часовой стрелке, его потомки наследуют систему координат, повернутую на 90° по часовой стрелке. Координаты объекта определяются относительно положения точки регистрации.


Реализация
    public function get x():Number
    public function set x(value:Number):void

Пример
Следующий код создает объект Sprite с именем circle. Объект Timer используется для изменения свойства x спрайта через каждые 50 миллисекунд.

import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;

var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFF0000);
circle.graphics.drawCircle(100, 100, 100);
addChild(circle);

var tim:Timer = new Timer(50);
tim.start();
tim.addEventListener(TimerEvent.TIMER, bounce);

var xInc:Number = 2;

function bounce(event:TimerEvent):void {
    circle.x += xInc;
    if (circle.x > circle.width) {
        xInc = -2;
    }
    if (circle.x < 0) {
        xInc = 2;
    }
}
yсвойство 
y:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. Если объект включен в DisplayObjectContainer с преобразованиями, то он находится в локальной системе координат содержащего его DisplayObjectContainer. Таким образом, если объект DisplayObjectContainer повернут на 90° по часовой стрелке, его потомки наследуют систему координат, повернутую на 90° по часовой стрелке. Координаты объекта определяются относительно положения точки регистрации.


Реализация
    public function get y():Number
    public function set y(value:Number):void

Пример
Следующий код создает два объекта TextField и изменяет свойство height каждого из них на основе их свойства textHeight; также путем задания свойства y определяется положение второго текстового поля.
import flash.text.TextField;

var tf1:TextField = new TextField();
tf1.text = "Text Field 1";
tf1.border = true;
tf1.wordWrap = true;
tf1.width = 40;
tf1.height = tf1.textHeight + 5;
addChild(tf1);

var tf2:TextField = new TextField();
tf2.text = "Text Field 2";
tf2.border = true;
tf2.wordWrap = true;
tf2.width = 40;
tf2.height = tf2.textHeight + 5;
tf2.y = tf1.y + tf1.height + 5;
addChild(tf2);
zсвойство 
z:Number  [чтение и запись]

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Указывает положение по оси z экземпляра DisplayObject относительно трехмерного родительского контейнера. Свойство z предназначено для работы с трехмерными системами координат, а не с экранными или пиксельными координатами.

При установке свойства z экранного объекта на значение, отличное от значения по умолчанию, равного 0, автоматически создается соответствующий объект Matrix3D. для регулирования положения и ориентации экранного объекта в трехмерном пространстве. При работе с осью z существующее поведение свойств х и у изменяется с экранных или пиксельных координат на положения относительно трехмерного родительского контейнера.

Например, потомок объекта _root в положении x = 100, y = 100, z = 200 не отрисовывается в пиксельном положении (100,100). Потомок отрисовывается в месте, определенном путем вычисления трехмерной проекции. Вычисление производится следующим образом:

(x*cameraFocalLength/cameraRelativeZPosition, y*cameraFocalLength/cameraRelativeZPosition)


Реализация
    flash10 function get z():Number
    flash10 function set z(value:Number):void

См. также


Пример
Данный пример иллюстрирует рисование двух эллипсов, двигающихся туда и обратно (вниз и вверх по оси z) по направлению к точке схода. Один эллипс двигается быстрее другого.
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.display.Graphics;
    import flash.events.Event;
    import flash.geom.*;

    public class ZAxisExample1 extends MovieClip {
        private var ellipse1Back:int = 1;
        private var ellipse2Back:int = 1;
        private var depth:int = 1000;
        
        public function ZAxisExample1():void {
            
            var ellipse1 = drawEllipse((this.stage.stageWidth / 2) - 100, 
                                      (this.stage.stageHeight / 2), 100, 80, 10);
            var ellipse2 = drawEllipse((this.stage.stageWidth / 2) + 100, 
                                      (this.stage.stageHeight / 2), 100, 80, 300);

            this.addChild(ellipse1);
            this.addChild(ellipse2);
            
            ellipse1.addEventListener(Event.ENTER_FRAME, ellipse1FrameHandler);
            ellipse2.addEventListener(Event.ENTER_FRAME, ellipse2FrameHandler);
        }

        private function drawEllipse(x:Number, y:Number, w:Number, h:Number, z:Number):Shape {
            var s:Shape = new Shape();                            
            s.z = z;
            s.graphics.beginFill(0xFF0000);
            s.graphics.lineStyle(2);
            s.graphics.drawEllipse(x, y, w, h);
            s.graphics.endFill();
            return s;
        }

        private function ellipse1FrameHandler(e:Event):void {
            ellipse1Back = setDepth(e, ellipse1Back);
            e.currentTarget.z += ellipse1Back * 10;
        }

        private function ellipse2FrameHandler(e:Event):void {
            ellipse2Back = setDepth(e, ellipse2Back);
            e.currentTarget.z += ellipse2Back * 20;
        }

        private function setDepth(e:Event, d:int):int {
            if(e.currentTarget.z > depth) {
                e.currentTarget.z = depth; 
                d = -1;
            }else if (e.currentTarget.z <  0) {
                e.currentTarget.z = 0;
                d = 1;
            }
            return d;
        }
    }
}
Сведения о методе
dynamicNewFunc1()метод
public function dynamicNewFunc1():Number

Возвращает
Number
getBounds()метод 
public function getBounds(targetCoordinateSpace:DisplayObject):Rectangle

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Возвращает прямоугольник, определяющий область экранного объекта, которая относится к системе координат объекта targetCoordinateSpace. На примере следующего кода рассмотрим, как возвращаемый прямоугольник может варьироваться в зависимости от передаваемого методу параметра targetCoordinateSpace.

     var container:Sprite = new Sprite();
     container.x = 100;
     container.y = 100;
     this.addChild(container);
     var contents:Shape = new Shape();
     contents.graphics.drawCircle(0,0,100);
     container.addChild(contents);
     trace(contents.getBounds(container));
      // (x=-100, y=-100, w=200, h=200)
     trace(contents.getBounds(this));
      // (x=0, y=0, w=200, h=200)
     

Примечание. Используйте методы localToGlobal() и globalToLocal() для преобразования локальных координат экранного объекта в координаты экрана и наоборот.

Метод getBounds() похож на методgetRect(), однако прямоугольник, возвращаемый методом getBounds(), включает все штрихи на фигурах, а возвращаемый методом getRect() — нет. Пример см. в описании метода getRect().

Параметры

targetCoordinateSpace:DisplayObject — Экранный объект, определяющий используемую систему координат

Возвращает
Rectangle — Прямоугольник, определяющий область экранного объекта относительно системы координат объекта targetCoordinateSpace.

См. также

getDynamicZ()метод 
public function getDynamicZ():Number

Возвращает
Number
getRect()метод 
public function getRect(targetCoordinateSpace:DisplayObject):Rectangle

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Возвращает прямоугольник, определяющий границу экранного объекта по системе координат, заданной параметром targetCoordinateSpace, за исключением линий фигур. Значения, возвращаемые методом getRect(), равны или меньше возвращаемых методом getBounds().

Примечание. Используйте методы localToGlobal() и globalToLocal() для преобразования локальных координат экранного объекта в координаты рабочей области и наоборот.

Параметры

targetCoordinateSpace:DisplayObject — Экранный объект, определяющий используемую систему координат

Возвращает
Rectangle — Прямоугольник, определяющий область экранного объекта относительно системы координат объекта targetCoordinateSpace.

См. также


Пример

В следующем примере показано, как метод getBounds() возвращает прямоугольник большего размера, чем метод getRect(), потому что штрихи занимают дополнительное пространство. В данном случае спрайт triangle содержит дополнительные штрихи из-за параметров width и jointStyle метода lineStyle(). Вывод метода trace() (в двух последних строках) показывает различия между прямоугольниками getRect() и getBounds().

import flash.display.CapsStyle;
import flash.display.JointStyle;
import flash.display.LineScaleMode;
import flash.display.Sprite;
import flash.geom.Rectangle;

var triangle:Sprite = new Sprite();
var color:uint = 0xFF0044;
var width:Number = 20;
var alpha:Number = 1.0;
var pixelHinting:Boolean = true;
var scaleMode:String = LineScaleMode.NORMAL;
var caps:String = CapsStyle.SQUARE;
var joints:String = JointStyle.MITER;
triangle.graphics.lineStyle(width, color, alpha, pixelHinting, scaleMode, caps, joints);

var triangleSide:Number = 100;
triangle.graphics.moveTo(0, 0);
triangle.graphics.lineTo(0, triangleSide);
triangle.graphics.lineTo(triangleSide, triangleSide);
triangle.graphics.lineTo(0, 0);

addChild(triangle);

trace(triangle.getBounds(this)); // (x=-10, y=-24.1, w=134.10000000000002, h=134.1)
trace(triangle.getRect(this));     // (x=0, y=0, w=100, h=100)
globalToLocal()метод 
public function globalToLocal(point:Point):Point

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Преобразует объект Point из координат рабочей области (глобальных) в координаты экранного объекта (локальные).

Чтобы воспользоваться этим методом, сначала нужно создать экземпляр класса Point. Присвоенные вами значения x и y представляют глобальные координаты, так как они указаны относительно исходной точки (0, 0) основной области отображения. Затем экземпляр Point следует передать в качестве параметра методу globalToLocal(). Этот метод возвращает новый объект Point со значениями x и y, указанными относительно исходной точки экранного объекта, а не рабочей области.

Параметры

point:Point — Объект, созданный с использованием класса Point. Объект Point задает координаты x и y в качестве свойств.

Возвращает
Point — Объект Point с координатами относительно экранного объекта.

См. также


Пример

Следующий код создает объект Shape и иллюстрирует результат вызова метода hitTestPoint(), в качестве параметров которого используются разные точки. Метод globalToLocal() переводит точку из координатной плоскости рабочей области в координатную плоскость фигуры.

import flash.display.Shape;
import flash.geom.Point;

var circle:Shape = new Shape();
circle.graphics.beginFill(0x0000FF);
circle.graphics.drawCircle(40, 40, 40);
circle.x = 10;
addChild(circle);

var point1:Point = new Point(0, 0);
trace(circle.hitTestPoint(point1.x, point1.y, true)); // false
trace(circle.hitTestPoint(point1.x, point1.y, false)); // false
trace(circle.globalToLocal(point1)); // [x=-10, y=0]

var point2:Point = new Point(10, 1);
trace(circle.hitTestPoint(point2.x, point2.y, true)); // false
trace(circle.hitTestPoint(point2.x, point2.y, false)); // true
trace(circle.globalToLocal(point2)); // [x=0, y=1]

var point3:Point = new Point(30, 20);
trace(circle.hitTestPoint(point3.x, point3.y, true)); // true
trace(circle.hitTestPoint(point3.x, point3.y, false)); // true
trace(circle.globalToLocal(point3)); // [x=20, y=20]
globalToLocal3D()метод 
flash10 function globalToLocal3D(point:Point):Vector3D

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Преобразует двумерный объект Point из координат рабочей области (глобальных) в координаты экранного трехмерного объекта (локальные).

Чтобы воспользоваться этим методом, сначала нужно создать экземпляр класса Point. Присвоенные объекту Point значения x и y представляют глобальные координаты, так как они указаны относительно исходной точки (0, 0) основной области отображения. Затем передайте объект Point методу globalToLocal3D() в виде параметра point. Данный метод возвращает трехмерные координаты в виде объекта Vector3D, содержащего значения x, y и z относительно исходной точки трехмерного экранного объекта.

Параметры

point:Point — Двухмерный объект Point, представляющий глобальные координаты x и y.

Возвращает
Vector3D — Объект Vector3D с координатами относительно трехмерного экранного объекта.
hitTestObject()метод 
public function hitTestObject(obj:DisplayObject):Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Оценивает экранный объект, чтобы определить, перекрывает ли он экранный объект obj или пересекается с ним.

Параметры

obj:DisplayObject — Экранный объект для сравнения.

Возвращает
Boolean — Значение — true, если есть пересечение с экранным объектом, если же нет — false.

Пример

Следующий код создает три объекта Shape, на его примере показан результат вызова метода hitTestObject().

import flash.display.Shape;

var circle1:Shape = new Shape();
circle1.graphics.beginFill(0x0000FF);
circle1.graphics.drawCircle(40, 40, 40);
addChild(circle1);

var circle2:Shape = new Shape();
circle2.graphics.beginFill(0x00FF00);
circle2.graphics.drawCircle(40, 40, 40);
circle2.x = 50;
addChild(circle2);

var circle3:Shape = new Shape();
circle3.graphics.beginFill(0xFF0000);
circle3.graphics.drawCircle(40, 40, 40);
circle3.x = 100;
circle3.y = 67;
addChild(circle3);

trace(circle1.hitTestObject(circle2)); // true
trace(circle1.hitTestObject(circle3)); // true
trace(circle2.hitTestObject(circle3)); // true
hitTestPoint()метод 
public function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее. Параметры x и y задают точку в координатной плоскости рабочей области, а не контейнера экранных объектов, содержащего объект (если контейнером не является сама рабочая область).

Параметры

x:Number — Координата x, сравниваемая с данным объектом.
 
y:Number — Координата у, сравниваемая с данным объектом.
 
shapeFlag:Boolean (default = false) — Указывает, следует ли выполнять тестирование по фактическим пикселам объекта (true) или по рамке (false).

Возвращает
Boolean — Значение — true, если экранный объект перекрывает заданный объект или пересекается с ним; в противном случае — false.

См. также


Пример

Следующий код создает объект Shape и иллюстрирует результат вызова метода hitTestPoint(), в качестве параметров которого используются разные точки. Метод globalToLocal() переводит точку из координатной плоскости рабочей области в координатную плоскость фигуры.

import flash.display.Shape;
import flash.geom.Point;

var circle:Shape = new Shape();
circle.graphics.beginFill(0x0000FF);
circle.graphics.drawCircle(40, 40, 40);
circle.x = 10;
addChild(circle);

var point1:Point = new Point(0, 0);
trace(circle.hitTestPoint(point1.x, point1.y, true)); // false
trace(circle.hitTestPoint(point1.x, point1.y, false)); // false
trace(circle.globalToLocal(point1)); // [x=-10, y=0]

var point2:Point = new Point(10, 1);
trace(circle.hitTestPoint(point2.x, point2.y, true)); // false
trace(circle.hitTestPoint(point2.x, point2.y, false)); // true
trace(circle.globalToLocal(point2)); // [x=0, y=1]

var point3:Point = new Point(30, 20);
trace(circle.hitTestPoint(point3.x, point3.y, true)); // true
trace(circle.hitTestPoint(point3.x, point3.y, false)); // true
trace(circle.globalToLocal(point3)); // [x=20, y=20]
local3DToGlobal()метод 
flash10 function local3DToGlobal(point3d:Vector3D):Point

Язык версии : ActionScript 3.0
Версии среды выполнения: Flash Player 10

Преобразует трехмерный объект point из координат трехмерного экранного объекта (локальных) в двухмерный объект point с координатами рабочей области (глобальными).

Например, вы можете использовать только двухмерные координаты (x,y) для рисования при помощи методов display.Graphics. Чтобы нарисовать трехмерный объект, необходимо сопоставить трехмерные координаты экранного объекта двухмерным координатам. Сначала создайте экземпляр класса Vector3D с координатами x, y и z трехмерного экранного объекта. Затем передайте объект Vector3D методу local3DToGlobal() в виде параметра point3d. Метод возвращает двухмерный объект Point, который можно использовать с Graphics API для рисования трехмерного объекта.

Параметры

point3d:Vector3D — Объект Vector3D, содержащий либо трехмерный объект point, либо координаты трехмерного экранного объекта.

Возвращает
Point — Двухмерный объект point, представляющий трехмерный объект point в двухмерном пространстве.

Пример

Данный пример иллюстрирует рисование простого трехмерного куба в двухмерном пространстве при помощи методов display.Graphics. Расположение экранного объекта this смещено, поэтому точка фиксации куба находится в центре. Вектор объектов Vector3D содержит трехмерные координаты куба. Сначала рисуется верхняя грань куба, затем нижняя, затем соединяются верхние и нижние четыре угла. Перед рисованием куба его необходимо добавить в контейнер экранных объектов, чтобы использовать метод local3DToGlobal().
package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.display.Graphics;
    import flash.geom.*;

    public class Local3DToGlobalExample extends MovieClip {
        private var myCube:Sprite = new Sprite();
        private var v8:Vector.<Vector3D> = new Vector.<Vector3D>(8);

        public function Local3DToGlobalExample():void {
            this.x = -(this.stage.stageWidth / 2);
            this.y = -(this.stage.stageWidth / 2);

            v8[0] = new Vector3D(-40,-40,-40);
            v8[1] = new Vector3D(40,-40,-40);
            v8[2] = new Vector3D(40,-40,40);
            v8[3] = new Vector3D(-40,-40,40);
            v8[4] = new Vector3D(-40,100,-40);
            v8[5] = new Vector3D(40,100,-40);
            v8[6] = new Vector3D(40,100,40);
            v8[7] = new Vector3D(-40,100,40);

            myCube.x = (this.stage.stageWidth / 2);
            myCube.y = (this.stage.stageWidth / 2);
            myCube.z = 1;
            addChild(myCube);

            Cube();         
        }

        private function Cube():void {
            var ps:Point = new Point(0,0);

            myCube.graphics.lineStyle(2,0xFF0000);

            ps = myCube.local3DToGlobal(v8[0]);
            myCube.graphics.moveTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[1]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[2]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[3]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[0]);
            myCube.graphics.lineTo(ps.x, ps.y);

            ps = myCube.local3DToGlobal(v8[4]);
            myCube.graphics.moveTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[5]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[6]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[7]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[4]);
            myCube.graphics.lineTo(ps.x, ps.y);

            ps = myCube.local3DToGlobal(v8[0]);
            myCube.graphics.moveTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[4]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[1]);
            myCube.graphics.moveTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[5]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[2]);
            myCube.graphics.moveTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[6]);
            myCube.graphics.lineTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[3]);
            myCube.graphics.moveTo(ps.x, ps.y);
            ps = myCube.local3DToGlobal(v8[7]);
            myCube.graphics.lineTo(ps.x, ps.y);
        }
    }
}
localToGlobal()метод 
public function localToGlobal(point:Point):Point

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Преобразует объект point из координат экранного объекта (локальных) в координаты рабочей области (глобальные).

Этот метод позволяет преобразовать заданные координаты x и y из значений относительно исходной точки (0, 0) конкретного объекта (локальных координат) в значения относительно исходной точки рабочей области (глобальные координаты).

Чтобы воспользоваться этим методом, сначала нужно создать экземпляр класса Point. Присвоенные вами значения x и y представляют локальные координаты, так как они указаны относительно исходной точки экранного объекта.

Затем созданный экземпляр Point передается в качестве параметра методу localToGlobal(). Этот метод возвращает новый объект Point со значениями x и y, указанными относительно исходной точки рабочей области, а не экранного объекта.

Параметры

point:Point — Имя или идентификатор точки, созданной с использованием класса Point, в качестве свойств которой заданы координаты x и y.

Возвращает
Point — Объект Point с координатами относительно рабочей области.

См. также


Пример

Следующий код создает объект Sprite. Свойства mouseX и mouseY спрайта представляют собой координатную плоскость экранного объекта. В этом коде используется метод localToGlobal() для преобразования этих свойств в глобальные координаты (рабочей области).

import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.Point;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFFCC00);
square.graphics.drawRect(0, 0, 100, 100);
square.x = 100;
square.y = 200;

addChild(square);

square.addEventListener(MouseEvent.CLICK, traceCoordinates)

function traceCoordinates(event:MouseEvent):void {
    var clickPoint:Point = new Point(square.mouseX, square.mouseY);
    trace("display object coordinates:", clickPoint);
    trace("stage coordinates:", square.localToGlobal(clickPoint));
}
newFunc1()метод 
public function newFunc1():Number

Возвращает
Number
newFunc2()метод 
public function newFunc2():Number

Возвращает
Number
Сведения о событии
added Событие
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.ADDED

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Отправляется, когда экранный объект добавляется в список отображения. Это событие запускается следующими методами: DisplayObjectContainer.addChild(), DisplayObjectContainer.addChildAt().

Константа Event.ADDED определяет значение свойства type добавленного объекта события.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblestrue
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЭкземпляр DisplayObject, добавляемый в список отображения. Свойство target не всегда является объектом из списка отображения, для которого зарегистрирован прослушиватель событий. Используйте свойство currentTarget, чтобы обратиться к объекту в списке отображения, обрабатывающему событие в данный момент.

См. также

addedToStage Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.ADDED_TO_STAGE

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9.0.28.0

Отправляется, когда экранный объект добавляется к списку отображения в рабочей области, либо непосредственно, либо путем добавления поддерева, содержащего экранный объект. Это событие запускается следующими методами: DisplayObjectContainer.addChild(), DisplayObjectContainer.addChildAt().

Константа Event.ADDED_TO_STAGE определяет значение свойства type объекта события addedToStage.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЭкземпляр DisplayObject, добавляемый в список отображения рабочей области напрямую или путем добавления поддерева, в котором он содержится. Если экземпляр DisplayObject добавляется напрямую, перед этим событием отправляется событие added.

См. также

enterFrame Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.ENTER_FRAME

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

[многоадресное событие] Отправляется, когда точка воспроизведения переходит в новый кадр. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.

Константа Event.ENTER_FRAME определяет значение свойства type объекта события enterFrame.

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

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЛюбой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события ENTER_FRAME.
exitFrame Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.EXIT_FRAME

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

[многоадресное событие] Отправляется, когда точка воспроизведения покидает текущий кадр. Все сценарии кадров выполнены. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.

Определяет значение свойства type объекта события exitFrame.

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

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЛюбой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события enterFrame.
frameConstructed Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.FRAME_CONSTRUCTED

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

[многоадресное событие] Отправляется после завершения работы конструкторов экранных объектов кадра до выполнения сценариев кадра. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.

Задает значение свойства type для объекта события frameConstructed.

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

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЛюбой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события frameConstructed.
removed Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.REMOVED

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

Отправляется перед удалением экранного объекта из списка отображения. Это событие генерируют два метода класса DisplayObjectContainer: removeChild() и removeChildAt().

Следующие методы объекта DisplayObjectContainer также генерируют это событие, если один объект должен быть удален с целью освобождения места для нового: addChild(), addChildAt() и setChildIndex().

Константа Event.REMOVED определяет значение свойства type объекта события removed.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblestrue
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЭкземпляр DisplayObject, удаляемый из списка отображения. Свойство target не всегда является объектом из списка отображения, для которого зарегистрирован прослушиватель событий. Используйте свойство currentTarget, чтобы обратиться к объекту в списке отображения, обрабатывающему событие в данный момент.
removedFromStage Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.REMOVED_FROM_STAGE

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9.0.28.0

Отправляется перед удалением экранного объекта из списка отображения, либо непосредственно, либо путем удаления поддерева, содержащего экранный объект. Это событие генерируют два метода класса DisplayObjectContainer: removeChild() и removeChildAt().

Следующие методы объекта DisplayObjectContainer также генерируют это событие, если один объект должен быть удален с целью освобождения места для нового: addChild(), addChildAt() и setChildIndex().

Константа Event.REMOVED_FROM_STAGE определяет значение свойства type объекта события removedFromStage.

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; нет поведения по умолчанию для отмены.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЭкземпляр DisplayObject, удаляемый из списка отображения рабочей области напрямую или путем удаления поддерева, в котором он содержится. Если экземпляр DisplayObject добавляется напрямую, перед этим событием отправляется событие removed.
render Событие  
Тип объекта события: flash.events.Event
свойство Event.type = flash.events.Event.RENDER

Язык версии : ActionScript 3.0
Версии среды выполнения: AIR 1.0, Flash Player 9

[многоадресное событие] Отправляется перед обновлением и визуализацией списка отображения. Это событие дает последнюю возможность объектам, прослушивающим данное событие, внести изменения перед визуализацией списка отображения. Проигрыватель Flash Player по умолчанию воспроизводит список отображения. Необходимо вызывать метод invalidate() объекта Stage каждый раз, когда требуется, чтобы Flash Player отправил событие render. События render отправляются объекту только при условии взаимного доверия между ним и объектом, вызвавшим метод Stage.invalidate(). Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.

Примечание. Это событие не отправляется, если окно Flash Player не выполняет визуализацию. Это происходит, когда окно проигрывателя свернуто или скрыто.

Константа Event.RENDER определяет значение свойства type объекта события render.

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

Данное событие имеет следующие свойства.

СвойствоЗначение
bubblesfalse
cancelablefalse; поведение по умолчанию отменить нельзя.
currentTargetОбъект, активно обрабатывающий объект Event с помощью прослушивателя событий.
targetЛюбой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события RENDER.
Примеры Как пользоваться примерами
DisplayObjectExample.as

В следующем примере с помощью класса DisplayObjectExample рисуется оранжевый квадрат в углу рабочей области, который затем реагирует на события, для каждого из которых отображается текстовая информация. Это можно сделать, выполнив следующие действия.
  1. Объявляются свойства класса для цвета и размера квадрата.
  2. Конструктор вызывает метод draw(), который рисует оранжевый квадрат в рабочей области в точке с координатами по умолчанию x = 0, y = 0.
  3. Для квадрата добавляются следующие методы прослушивателей событий.
    • addedHandler() прослушивает события added, отправляемые при добавлении квадрата в список отображения.
    • enterFrameHandler() прослушивает события enterFrame, которые в данном примере не несут реальной нагрузки.
    • removedHandler() прослушивает события removed, отправляемые при удалении квадрата из списка отображения, что происходит при щелчке по нему.
    • clickHandler() прослушивает события click, отправляемые при щелчке по оранжевому квадрату.
    • renderHandler() прослушивает события render после обновления списка отображения.

package {
    import flash.display.Sprite;

    public class DisplayObjectExample extends Sprite {
        public function DisplayObjectExample() {
            var child:CustomDisplayObject = new CustomDisplayObject();
            addChild(child);
        }
    }
}

import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.*;

class CustomDisplayObject extends Sprite {
    private var bgColor:uint = 0xFFCC00;
    private var size:uint    = 80;

    public function CustomDisplayObject() {
        draw();
        addEventListener(Event.ADDED, addedHandler);
        addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        addEventListener(Event.REMOVED, removedHandler);
        addEventListener(MouseEvent.CLICK, clickHandler);
        addEventListener(Event.RENDER, renderHandler);
    }

    private function draw():void {
        graphics.beginFill(bgColor);
        graphics.drawRect(0, 0, size, size);
        graphics.endFill();
    }

    private function clickHandler(event:MouseEvent):void {
        trace("clickHandler: " + event);
        parent.removeChild(this);
    }

    private function addedHandler(event:Event):void {
        trace("addedHandler: " + event);
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;
        stage.addEventListener("resize", resizeHandler);
    }

    private function enterFrameHandler(event:Event):void {
        trace("enterFrameHandler: " + event);
        removeEventListener("enterFrame", enterFrameHandler);
    }

    private function removedHandler(event:Event):void {
        trace("removedHandler: " + event);
        stage.removeEventListener("resize", resizeHandler);
    }

    private function renderHandler(event:Event):void {
        trace("renderHandler: " + event);
    }

    private function resizeHandler(event:Event):void {
        trace("resizeHandler: " + event);
    }
}