| Пакет | flash.display |
| Класс | public class DisplayObject |
| Наследование | DisplayObject EventDispatcher Object |
| Реализует | IBitmapDrawable |
| Подклассы | AVM1Movie, Bitmap, InteractiveObject, MorphShape, Shape, StaticText, Video |
| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Класс 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.
Связанные элементы API
| Свойство | Определено | ||
|---|---|---|---|
| accessibilityProperties : AccessibilityProperties
Текущие параметры специальных возможностей для данного экранного объекта. | DisplayObject | ||
| alpha : Number
Указывает значение альфа-прозрачности заданного объекта. | DisplayObject | ||
| blendMode : String
Значение класса BlendMode, задающее режим наложения. | DisplayObject | ||
| blendShader : Shader [только для записи]
Задает затенение, используемое при наложении переднего плана на фон. | DisplayObject | ||
| cacheAsBitmap : Boolean
При значении true среда выполнения Flash кэширует внутреннее растровое представление экранного объекта. | DisplayObject | ||
| cacheAsBitmapMatrix : Matrix
Если задано ненулевое значение, данный объект Matrix определяет способ визуализации экранного объекта, когда свойство cacheAsBitmap имеет значение true. | DisplayObject | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
| filters : Array
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. | DisplayObject | ||
| height : Number
Указывает высоту экранного объекта в пикселях. | DisplayObject | ||
| loaderInfo : LoaderInfo [только для чтения]
Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект. | DisplayObject | ||
| mask : DisplayObject
Вызывающий экранный объект маскируется заданным объектом mask. | DisplayObject | ||
| metaData : Object
Получает объект метаданных экземпляра DisplayObject, если метаданные хранились вместе с экземпляром этого DisplayObject в SWF-файле через тег PlaceObject4. | DisplayObject | ||
| mouseX : Number [только для чтения]
Указывает координату x мыши или курсора пользовательского ввода (в пикселях). | DisplayObject | ||
| mouseY : Number [только для чтения]
Указывает координату y мыши или курсора пользовательского ввода (в пикселях). | DisplayObject | ||
| name : String
Указывает имя экземпляра DisplayObject. | DisplayObject | ||
| opaqueBackground : Object
Определяет, является ли экранный объект непрозрачным с определенным цветом фона. | DisplayObject | ||
| parent : DisplayObjectContainer [только для чтения]
Указывает объект DisplayObjectContainer, содержащий данный экранный объект. | DisplayObject | ||
| 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 : flash.geom: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 | ||
| Метод | Определено | ||
|---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | |
![]() |
Посылает событие в поток событий. | EventDispatcher | |
Возвращает прямоугольник, определяющий область объекта отображения, которая относится к системе координат объекта targetCoordinateSpace. | DisplayObject | ||
Возвращает прямоугольник, определяющий границу объекта отображения по системе координат, определенной параметром targetCoordinateSpace за исключением линий фигур. | DisplayObject | ||
Преобразует объект Point из координат рабочей области (глобальных) в координаты отображаемого объекта (локальные). | DisplayObject | ||
Преобразует двумерный объект Point из координат рабочей области (глобальных) в координаты экранного трехмерного объекта (локальные). | DisplayObject | ||
![]() |
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
Вычисляет ограничительную рамку экранного объекта, чтобы определить, не перекрывает и не пересекает ли она ограничительную рамку экранного объекта obj. | DisplayObject | ||
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее. | DisplayObject | ||
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
Преобразует трехмерный объект point из координат трехмерного экранного объекта (локальных) в двухмерный объект point с координатами рабочей области (глобальными). | DisplayObject | ||
Преобразует объект Point из координат экранного объекта (локальных) в координаты рабочей области (глобальные). | DisplayObject | ||
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher | |
| Событие | Сводка | Определено | ||
|---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
| Отправляется, когда экранный объект добавляется в список отображения. | DisplayObject | |||
| Отправляется, когда экранный объект добавляется к списку отображения на монтажном столе либо непосредственно, либо путем добавления поддерева, содержащего экранный объект. | DisplayObject | |||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player или приложение AIR теряет фокус системы и становится неактивным. | EventDispatcher | ||
| [многоадресное событие] Отправляется, когда точка воспроизведения переходит в новый кадр. | DisplayObject | |||
| [многоадресное событие] Отправляется, когда точка воспроизведения покидает текущий кадр. | DisplayObject | |||
| [многоадресное событие] Отправляется после завершения работы конструкторов экранных объектов кадра до выполнения сценариев кадра. | DisplayObject | |||
| Отправляется перед удалением экранного объекта из списка отображения. | DisplayObject | |||
| Отправляется перед удалением экранного объекта из списка отображения либо напрямую, либо путем удаления поддерева, содержащего экранный объект. | DisplayObject | |||
| [многоадресное событие] Отправляется перед обновлением и визуализацией списка отображения. | DisplayObject | |||
accessibilityProperties | свойство |
accessibilityProperties:AccessibilityProperties| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Текущие параметры специальных возможностей для данного экранного объекта. Если модифицируется свойство accessibilityProperties или любые поля в accessibilityProperties, необходимо вызвать метод Accessibility.updateProperties(), чтобы изменения вступили в силу.
Примечание. Для объектов, созданных в среде разработки Flash, значение accessibilityProperties предварительно заполняется информацией, введенной на панели «Специальные возможности» данного объекта.
Реализация
public function get accessibilityProperties():AccessibilityProperties public function set accessibilityProperties(value:AccessibilityProperties):voidСвязанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Указывает значение альфа-прозрачности заданного объекта. Допустимые значения находятся в диапазоне 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 использует значение BlendMode.NORMAL.
Свойство blendMode влияет на каждый пиксель экранного объекта. Каждый пиксель состоит из трех основных цветов (красного, зеленого и синего) со значениями в пределах 0x00 — 0xFF. Проигрыватель Flash Player или Adobe AIR сравнивает каждый цвет, составляющий один пиксель, во фрагменте ролика с соответствующим цветом пикселя фона. Например, если blendMode имеет значение BlendMode.LIGHTEN, Flash Player или Adobe AIR сравнивает значение красного для экранного объекта со значением красного для фона и использует более светлый из них в качестве красного компонента отображаемого цвета.
В следующей таблице описываются параметры blendMode. Класс BlendMode определяет строковые значения для использования. На иллюстрациях в таблице показаны значения blendMode, примененные к круглому экранному объекту (2) с наложением на другой экранный объект (1).
| Константа BlendMode | Рисунок | Описание |
|---|---|---|
BlendMode.NORMAL | ![]() | Экранный объект отображается перед фоном. Значения пикселей экранного объекта переопределяют значения пикселей фона. В прозрачных областях экранного объекта виден фон. |
BlendMode.LAYER | ![]() | Инициирует создание группы прозрачности для экранного объекта. Это означает, что перед дальнейшей обработкой экранный объект сначала составляется во временном буфере. Это выполняется автоматически, если экранный объект заранее сохраняется в кэше посредством кэширования растрового изображения или если экранный объект является контейнером экранных объектов, содержащим хотя бы один дочерний объект с параметром blendMode не в значении BlendMode.NORMAL. Не поддерживается при визуализации с использованием графического процессора.
|
BlendMode.MULTIPLY | ![]() | Умножает значения составляющих цветов экранного объекта на значения цветов фона и затем нормализует их путем деления на 0xFF, в результате чего получаются более темные цвета. Этот параметр часто используется для затенения и создания эффекта глубины.
Например, если составляющий цвет (например, красный) одного пикселя в экранном объекте и соответствующий цвет пикселя в фоне имеют значение 0х88, то в результате умножения получается 0х4840. Деление на 0хFF дает значение 0х48 для данного составляющего цвета, принимающего более темный оттенок, чем в экранном объекте и фоне. |
BlendMode.SCREEN | ![]() | Умножает обратный код цвета экранного объекта на обратный код цвета фона, в результате чего получается эффект осветления. Этот параметр часто используется для высветления или удаления черных областей экранного объекта. |
BlendMode.LIGHTEN | ![]() | Выбирает более светлые из составляющих цветов экранного объекта и цвета фона (цвета с большими значениями). Этот параметр часто используется как тип наложения.
Например, если в экранном объекте есть пиксель со значением RGB, равным 0xFFCC33, а RGB пикселя фона имеет значение 0xDDF800, то значением RGB отображаемого пикселя является 0xFFF833 (так как 0xFF > 0xDD, 0xCC < 0xF8 и 0x33 > 0x00 = 33). Не поддерживается при визуализации с использованием графического процессора. |
BlendMode.DARKEN | ![]() | Выбирает более темные из составляющих цветов экранного объекта и цветов фона (цвета с меньшими значениями). Этот параметр часто используется как тип наложения.
Например, если в экранном объекте есть пиксель со значением RGB, равным 0xFFCC33, а RGB пикселя фона имеет значение 0xDDF800, то значением RGB отображаемого пикселя является 0xDDCC00 (так как 0xFF > 0xDD, 0xCC < 0xF8 и 0x33 > 0x00 = 33). Не поддерживается при визуализации с использованием графического процессора. |
BlendMode.DIFFERENCE | ![]() | Сравнивает составляющие цвета экранного объекта с цветами его фона и вычитает более темное значение (из двух составляющих цветов) из более светлого значения. Этот параметр часто используется для получения более живых цветов.
Например, если в экранном объекте есть пиксель со значением RGB, равным 0xFFCC33, а RGB пикселя фона имеет значение 0xDDF800, то значением RGB отображаемого пикселя является 0x222C33 (так как 0xFF - 0xDD = 0x22, 0xF8 - 0xCC = 0x2C и 0x33 - 0x00 = 0x33). |
BlendMode.ADD | ![]() | Прибавляет значения составляющих цветов экранного объекта к значениям цветов его фона (с максимальным значением 0xFF). Этот параметр часто используется для анимации растворения света между двумя объектами.
Например, если в экранном объекте есть пиксель со значением RGB, равным 0xAAA633, а RGB пикселя фона имеет значение 0xDD2200, то значением RGB отображаемого пикселя является 0xFFC833 (так как 0xAA + 0xDD > 0xFF, 0xA6 + 0x22 = 0xC8 и 0x33 + 0x00 = 0x33). |
BlendMode.SUBTRACT | ![]() | Вычитает значения составляющих цветов экранного объекта из значений цвета фона (с минимальным значением 0). Этот параметр часто используется для анимации растворения затемнения между двумя объектами.
Например, если в экранном объекте есть пиксель со значением RGB, равным 0xAA2233, а RGB пикселя фона имеет значение 0xDDA600, то значением RGB отображаемого пикселя является 0x338400 (так как 0xDD - 0xAA = 0x33, 0xA6 - 0x22 = 0x84 и 0x00 - 0x33 < 0x00). |
BlendMode.INVERT | ![]() | Инвертирует фон. |
BlendMode.ALPHA | ![]() | Применяет альфа-значение каждого пикселя экранного объекта к фону. Для этого требуется, чтобы параметру blendMode родительского экранного объекта было задано значение BlendMode.LAYER. Например, на иллюстрации для родительского экранного объекта с белым фоном используется настройка blendMode = BlendMode.LAYER. Не поддерживается при визуализации с использованием графического процессора. |
BlendMode.ERASE | ![]() | Стирает фон на основе альфа-значения экранного объекта. Для этого требуется, чтобы настройке blendMode родительского экранного объекта было задано значение BlendMode.LAYER. Например, на иллюстрации для родительского экранного объекта с белым фоном используется настройка blendMode = BlendMode.LAYER. Не поддерживается при визуализации с использованием графического процессора. |
BlendMode.OVERLAY | ![]() | Изменяет цвет каждого пикселя в зависимости от того, насколько темный цвет используется для фона. Если фон светлее 50-процентного серого, цвета экранного объекта и фона отфильтровываются, в результате чего получается более светлый цвет. Если фон темнее 50-процентного серого, цвета умножаются, что дает более темный цвет. Этот параметр часто используется для эффектов затенения. Не поддерживается при визуализации с использованием графического процессора. |
BlendMode.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Связанные элементы API
Пример ( Использование этого примера )
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, AIR 1.5 |
Задает затенение, используемое при наложении переднего плана на фон. Если свойство 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 происходит копирование затенения на внутреннем уровне. При выполнении операции наложения используется эта копия, а не ссылка на исходное затенение. Изменения параметров затенения (изменение значения параметра, ввода или байт-кода) не влияют на используемую для наложения копию затенения.
Реализация
public function set blendShader(value:Shader):voidВыдает
ArgumentError — Если тип выхода затенения несовместим с данной операцией (затенение должно указать выходpixel4).
| |
ArgumentError — Если затенение задает меньше двух входных изображений или если первые два входа не являются входами image4.
| |
ArgumentError — Если затенение задает неподдерживаемое входное изображение.
| |
ArgumentError — Если экземпляр ByteArray или Vector.<Number> используется в качестве ввода, а свойства width и height для ShaderInput не указаны либо указанные значения не соответствуют количеству данных во входном объекте. Дополнительные сведения см. в описании ShaderInput.input.
|
Связанные элементы API
cacheAsBitmap | свойство |
cacheAsBitmap:Boolean| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
При значении true среда выполнения Flash кэширует внутреннее растровое представление экранного объекта. Такое кэширование может повысить производительность для экранных объектов со сложным векторным содержимым.
Все векторные данные для экранного объекта, имеющего кэшированный растр, вырисовываются в растровом изображении, а не в основной области отображения. Если cacheAsBitmapMatrix имеет значение null или не поддерживается, растровое изображение копируется на основной экран в виде нерастянутых и неповернутых пикселей, привязанных к границам ближайших пикселей. Пиксели отображаются в точном соответствии с родительским объектом. При изменении границ растрового изображения оно не растягивается, а создается повторно.
Если свойство cacheAsBitmapMatrix поддерживается и имеет ненулевое значение, объект отрисовывается на растровом изображении вне экрана с использованием этой матрицы, и результат его визуализации с растяжением и/или поворотом используется для отрисовки объекта на главном экране.
Внутреннее растровое представление создается, только если свойство cacheAsBitmap имеет значение true.
После задания свойству cacheAsBitmap значения true визуализация остается без изменений, однако экранный объект автоматически выполняет привязку к пикселям. Скорость анимации может значительно увеличиться в зависимости от сложности векторного содержимого.
Свойство cacheAsBitmap автоматически получает значение true каждый раз, когда к экранному объекту применяется фильтр (при непустом массиве filter). Если к экранному объекту применяется фильтр, его свойство cacheAsBitmap отражается в значении true, даже если ему было задано значение false. Если удалить все фильтры экранного объекта, параметр cacheAsBitmap вернется к последнему заданному значению.
В следующих случаях экранный объект не использует растровое изображение, даже если свойство cacheAsBitmap имеет значение true, а вместо этого визуализирует векторные данные:
- Растровое изображение слишком большое. В AIR 1.5 и Flash Player 10 максимальный размер растрового изображения составляет 8,191 пикселей в ширину или высоту, а общее количество пикселей не может превышать 16,777,215. (Т.е. если ширина растрового изображения составляет 8,191 пикселя, его высота не может быть больше 2 048 пикселей.) В проигрывателе Flash Player 9 и более ранних версий это ограничение составляет 2 880 пикселей в высоту и 2 880 пикселей в ширину.
- Не удается выделить память для растрового изображения (с выдачей ошибки нехватки памяти).
Свойство cacheAsBitmap лучше всего использовать для фрагментов роликов, в которых преобладает статичное содержимое и редко используется масштабирование и поворот. Использование в таких фрагментах роликов свойства cacheAsBitmap может повысить производительность при преобразовании фрагмента ролика (при изменении координат x и y).
Реализация
public function get cacheAsBitmap():Boolean public function set cacheAsBitmap(value:Boolean):voidСвязанные элементы API
Пример ( Использование этого примера )
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
cacheAsBitmapMatrix | свойство |
cacheAsBitmapMatrix:Matrix| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 2.0 |
Если задано ненулевое значение, данный объект Matrix определяет способ визуализации экранного объекта, когда свойство cacheAsBitmap имеет значение true. Приложение использует эту матрицу как матрицу преобразования, которая применяется при визуализации растровой версии этого экранного объекта.
Поддержка профиля AIR: эта функция поддерживается на мобильных устройствах, но не поддерживается в компьютерных операционных системах. Поддержка также ограничена на устройствах AIR for TV. В частности, на устройствах AIR for TV поддерживаемые преобразования включают масштабирование и перенос, но не поворот или наклон. Дополнительные сведения о поддержке API-интерфейса в разных профилях см. в разделе «Поддержка в профилях AIR».
Когда задано свойство cacheAsBitmapMatrix, приложение сохраняет кэшированное растровое изображение на протяжении различных двухмерных преобразований, включая перенос, поворот и масштабирование. Если приложение использует аппаратное ускорение, то объект будет храниться в видеопамяти как текстура. Это позволяет графическому процессору применять поддерживаемые преобразования к объекту. Графический процессор может выполнять эти преобразования быстрее, чем ЦП.
Чтобы использовать аппаратное ускорение, во Flash Professional CS5 откройте диалоговое окно «Настройки iPhone», перейдите на вкладку «Общие» и задайте для параметра «Визуализация» значение «Графический процессор». Также можно задать свойству renderMode значение gpu в файле дескриптора приложения. Обратите внимание, что на устройствах AIR for TV автоматически используется аппаратное ускорение, если оно доступно.
Например, следующий код отправляет непреобразованное растровое представление экранного объекта в графический процессор:
matrix:Matrix = new Matrix(); // creates an identity matrix
mySprite.cacheAsBitmapMatrix = matrix;
mySprite.cacheAsBitmap = true;Обычно достаточно использовать матрицу идентичности (new Matrix()). Однако также можно использовать другую матрицу, например уменьшенную, чтобы загрузить в графический процессор другое растровое изображение. В следующем примере применяется матрица cacheAsBitmapMatrix, масштаб которой изменен в 0,5 раза по осям Х и Y. Растровый объект, используемый графическим процессором, имеет меньший размер, однако он корректируется процессором в соответствии со свойством transform.matrix экранного объекта:
matrix:Matrix = new Matrix(); // creates an identity matrix
matrix.scale(0.5, 0.5); // scales the matrix
mySprite.cacheAsBitmapMatrix = matrix;
mySprite.cacheAsBitmap = true;Как правило, следует использовать такую матрицу, которая преобразует экранный объект до размера, используемого в программе. Например, если в приложении отображается вдвое уменьшенная растровая версия спрайта, следует использовать матрицу, которая в два раза уменьшает масштаб изображения. Если в приложении должен отображаться спрайт, размеры которого превышают текущие, используйте матрицу, которая выполняет масштабирование с требуемым коэффициентом.
Примечание. Свойство cacheAsBitmapMatrix может использоваться для двухмерных преобразований. Если требуется применить преобразования в трехмерном пространстве, для этого нужно установить свойство 3D объекта и задать требуемое значение для его свойства transform.matrix3D. Если приложение упаковано с использованием режима «Графический процессор», это позволяет применять к объекту 3D-преобразования с использованием графического процессора. Свойство cacheAsBitmapMatrix игнорируется для 3D-объектов.
Реализация
public function get cacheAsBitmapMatrix():Matrix public function set cacheAsBitmapMatrix(value:Matrix):voidСвязанные элементы API
Пример ( Использование этого примера )
cacheAsBitmapMatrix используется для применения преобразований к растровой версии фрагмента ролика my_shape.
import flash.geom.Matrix;
import flash.display.*;
import flash.utils.Timer;
var my_shape:MovieClip = new MovieClip();
my_shape.graphics.beginFill(0xCCFF00);
my_shape.graphics.drawRect(200, 0, 100, 100);
addChild(my_shape);
var my_timer:Timer = new Timer(250);
my_timer.start();
my_timer.addEventListener(TimerEvent.TIMER, timerHandler);
// make sure this Display Object remains cached for all 2D transforms
my_shape.cacheAsBitmap = true;
my_shape.cacheAsBitmapMatrix = new Matrix();
// rotation variables
const initAngle:Number = 0;
const pi:Number = 3.142;
const incrAngle:Number = pi/10;
// scaling variables
const initScale:Number = 0.25;
const incrScale: Number = 1.1;
var initHeight : Number = my_shape.height;
var initWidth : Number = my_shape.width;
// translation variables
var incrX : Number = root.width / 20;
var incrY : Number = root.height / 10;
// do some initial transforms
var tempMat : Matrix = my_shape.transform.matrix;
tempMat.rotate(initAngle);
tempMat.scale(initScale, initScale);
my_shape.transform.matrix = tempMat;
function timerHandler(evt:TimerEvent):void {
tempMat = my_shape.transform.matrix;
tempMat.rotate(incrAngle);
tempMat.translate(incrX, incrY);
tempMat.scale(incrScale, incrScale);
my_shape.transform.matrix = tempMat;
// ensure we are still in a reasonable state or reset
if(my_shape.height > stage.stageHeight/2)
{
my_shape.height = initHeight;
}
if(my_shape.width > stage.stageWidth/2)
{
my_shape.width = initWidth;
}
if(my_shape.x > stage.stageWidth)
{
my_shape.x = 0;
}
else if (my_shape.x < 0)
{
my_shape.x = stage.stageWidth;
}
if(my_shape.y > stage.stageHeight)
{
my_shape.y = 0;
}
else if (my_shape.y < 0)
{
my_shape.y = stage.stageHeight;
}
}
filters | свойство |
filters:Array| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. Пакет flash.filters содержит несколько классов, определяющих конкретные фильтры, доступные для использования.
Фильтры можно применять в ходе работы в инструменте разработки Flash Professional или во время выполнения с использованием кода ActionScript. Чтобы применить фильтр с помощью ActionScript, необходимо создать временную копию всего массива filters, внести в нее необходимые изменения, а затем присвоить полученное значение исходному массиву filters. Нельзя добавлять новый объект filter напрямую в массив filters.
Чтобы добавить фильтр с помощью ActionScript, выполните следующие действия (предположим, что целевой экранный объект называется myDisplayObject).
- Создайте новый объект filter с помощью метода конструктора выбранного класса фильтра.
- Присвойте значение массива
myDisplayObject.filtersвременному массиву, например, массиву с именемmyFilters. - Добавьте новый объект filter во временный массив
myFilters. - Присвойте значение временного массива массиву
myDisplayObject.filters.
Если массив filters не определен, то временный массив использовать не требуется. Вместо этого можно напрямую присвоить литерал массива, содержащий один или несколько созданных вами объектов filter. В первом примере раздела «Примеры» добавляется фильтр «Тень» с помощью кода, обрабатывающего определенный и неопределенный массивы filters.
Чтобы изменить существующий объект filter, необходимо использовать прием изменения копии массива filters.
- Присвойте значение массива
filtersвременному массиву, например, массиву с именемmyFilters. - Модифицируйте свойство с помощью временного массива с именем
myFilters. Например, чтобы настроить свойство quality первого фильтра массива, можно использовать следующий код:myFilters[0].quality = 1; - Присвойте значение временного массива массиву
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 и затенение не задает ни одного входного изображения или если первичный вход не является входом image4.
| |
ArgumentError — Если в filters входит ShaderFilter, и затенение задает неподдерживаемое входное изображение.
| |
ArgumentError — Если в filters входит экземпляр ShaderFilter, ByteArray или Vector.<Number> в качестве ввода затенения, а свойства width и height для ShaderInput не указаны, или их значения не соответствуют входным данным. Дополнительные сведения см. в описании ShaderInput.input.
|
Связанные элементы API
height | свойство |
height:Number| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Указывает высоту экранного объекта в пикселях. Высота вычисляется на основе границ содержимого экранного объекта. Когда задается свойство 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Пример ( Использование этого примера )
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, Flash Lite 4 |
Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект. Свойство loaderInfo определяется только для корневого экранного объекта SWF-файла или для загруженного объекта Bitmap (а не нарисованного с помощью ActionScript). Чтобы найти объект loaderInfo, связанный с SWF-файлом, содержащим экранный объект с именем myDisplayObject, используйте myDisplayObject.root.loaderInfo.
Загрузку большого SWF-файла можно отслеживать с помощью метода this.root.loaderInfo.addEventListener(Event.COMPLETE, func).
Реализация
public function get loaderInfo():LoaderInfoСвязанные элементы API
Пример ( Использование этого примера )
this относится к экранному объекту. Код выдает URL корневого SWF-файла для экранного объекта.
trace (this.loaderInfo.url);
mask | свойство |
mask:DisplayObject| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Вызывающий экранный объект маскируется заданным объектом mask. Чтобы обеспечить маскирование при масштабировании рабочей области, экранный объект mask должен быть активным элементом списка отображения. Сам объект mask не отображается. Чтобы удалить маску, нужно задать для mask значение null.
Чтобы обеспечить масштабирование объекта mask, его необходимо добавить в список отображения. Чтобы обеспечить возможность перетаскивания маскирующего объекта Sprite (вызовом методаstartDrag()), его необходимо добавить в список отображения. Чтобы вызвать метод startDrag() для маскирующего спрайта при отправке им события mouseDown, задайте свойству спрайта buttonMode свойство true.
Когда экранные объекты кэшируются путем установки для свойства cacheAsBitmap значения true, а для свойства cacheAsBitmapMatrix — объекта «Matrix», и маска и отображаемый объект, на который накладывается маска, должны быть частью одного помещенного в кэш растрового изображения. Таким образом, если в кэш помещается отображаемый объект, маска должна быть дочерним элементом этого объекта. Если в кэш помещается предок объекта из списка отображения, маска должна быть дочерним элементом этого предка или одного из его потомков. Если в кэш помещается несколько предков объекта с наложенной маской, эта маска должна быть потомком кэшированного контейнера, самого близкого к объекту в списке отображения.
Примечание. Один объект mask не может использоваться для маскирования нескольких вызывающих экранных объектов. Когда mask назначается второму экранному объекту, он перестает быть маской первого, для которого свойство mask получает значение null.
Реализация
public function get mask():DisplayObject public function set mask(value:DisplayObject):voidПример ( Использование этого примера )
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();
}
metaData | свойство |
mouseX | свойство |
mouseX:Number [только для чтения] | Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Указывает координату x мыши или курсора пользовательского ввода (в пикселях).
Примечание. Для повернутого объекта DisplayObject возвращенная координата x будет характеризовать объект, поворот которого не выполнен.
Реализация
public function get mouseX():NumberПример ( Использование этого примера )
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, Flash Lite 4 |
Указывает координату y мыши или курсора пользовательского ввода (в пикселях).
Примечание. Для повернутого объекта DisplayObject возвращенная координата y будет характеризовать объект, поворот которого не выполнен.
Реализация
public function get mouseY():NumberПример ( Использование этого примера )
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, Flash Lite 4 |
Указывает имя экземпляра DisplayObject. Объект можно найти в списке дочерних объектов родительского контейнера экранных объектов путем вызова метода getChildByName() контейнера.
Реализация
public function get name():String public function set name(value:String):voidВыдает
IllegalOperationError — При попытке задать это свойство для объекта, помещенного на временную шкалу инструмента разработки Flash.
|
Пример ( Использование этого примера )
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, Flash Lite 4 |
Определяет, является ли экранный объект непрозрачным с определенным цветом фона. Прозрачное растровое изображение содержит данные альфа-канала и рисуется прозрачным. Непрозрачное растровое изображение не имеет альфа-канала (и визуализируется быстрее, чем прозрачное изображение). Если растровое изображение непрозрачное, требуется задать для него собственный цвет фона.
Если задать численное значение, поверхность будет непрозрачной, а RGB-цвет фона будет соответствовать заданному числу. Если оставить значение по умолчанию null, у экранного объекта будет прозрачный фон.
Свойство opaqueBackground предназначено, главным образом, для использования вместе со свойством cacheAsBitmap с целью оптимизации визуализации. Для экранных объектов со свойством cacheAsBitmap в значении true настройка свойства opaqueBackground может повысить производительность.
Непрозрачная область фона не сопоставляется при вызове метода hitTestPoint() с параметром shapeFlag в значении true.
Непрозрачная область фона не реагирует на события мыши.
Реализация
public function get opaqueBackground():Object public function set opaqueBackground(value:Object):voidСвязанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Указывает объект DisplayObjectContainer, содержащий данный экранный объект. Используйте свойство parent, чтобы задать относительный путь к экранным объектам, находящимся на более высоких уровнях иерархии списка отображения, чем текущий объект.
Свойство parent можно использовать для перемещения объекта вверх на несколько уровней в списке отображения, как показано ниже.
this.parent.parent.alpha = 20;
Реализация
public function get parent():DisplayObjectContainerВыдает
SecurityError — Данный родительский экранный объект принадлежит изолированной программной среде, к которой нет доступа. Чтобы избежать такой ситуации, родительский ролик должен вызвать метод Security.allowDomain().
|
Пример ( Использование этого примера )
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, Flash Lite 4 |
В случае с экранным объектом в загруженном 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, Flash Lite 4 |
Указывает поворот экземпляра 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Пример ( Использование этого примера )
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, AIR 1.5, Flash Lite 4 |
Обозначает поворот в градусах по оси x экземпляра DisplayObject относительно исходной ориентации по трехмерному вышестоящему контейнеру. Значения от 0 до 180 задают поворот по часовой стрелке. Значения от 0 до -180 задают поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.
Реализация
public function get rotationX():Number public 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;
}
}
}
//Requires:
// - Slider control UI component in Flash library.
// - Publish for Flash Player 10.
//
[SWF(width="400", height="300")]
import fl.controls.Slider;
import fl.controls.SliderDirection;
import fl.events.SliderEvent;
var slider:Slider = new Slider();
slider.direction = SliderDirection.HORIZONTAL;
slider.minimum = 0;
slider.maximum = 360;
slider.value = 45;
slider.tickInterval = 45;
slider.snapInterval = 1;
slider.liveDragging = true;
slider.addEventListener(SliderEvent.CHANGE, slider_change);
slider.move(10, 10);
addChild(slider);
var spr:Sprite = new Sprite();
spr.graphics.lineStyle(2, 0xFF0000);
spr.graphics.drawRect(0, 0, 100, 80);
spr.x = Math.round((stage.stageWidth - spr.width)/2);
spr.y = Math.round((stage.stageHeight - spr.height)/2);
spr.rotationX = 45;
addChild(spr);
function slider_change(evt:SliderEvent):void {
spr.rotationX = evt.value;
}
rotationY | свойство |
rotationY:Number| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Обозначает угол поворота в градусах по оси у экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. Значения от 0 до 180 задают поворот по часовой стрелке. Значения от 0 до -180 задают поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.
Реализация
public function get rotationY():Number public 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, AIR 1.5, Flash Lite 4 |
Обозначает угол поворота в градусах по оси z экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. Значения от 0 до 180 задают поворот по часовой стрелке. Значения от 0 до -180 задают поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.
Реализация
public function get rotationZ():Number public function set rotationZ(value:Number):voidscale9Grid | свойство |
scale9Grid:Rectangle| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Текущая активная сетка масштабирования. Если установлено значение null, весь объект отображения масштабируется в обычном порядке при применении любых преобразований масштаба.
При определении свойства scale9Grid экранный объект разбивается на сетку с девятью областями на основе прямоугольника scale9Grid, определяющего центральную область сетки. Восемь остальных областей сетки:
- Верхний левый угол за пределами прямоугольника
- Область над прямоугольником
- Верхний правый угол за пределами прямоугольника
- Область слева от прямоугольника
- Область справа от прямоугольника
- Нижний левый угол за пределами прямоугольника
- Область под прямоугольником
- Нижний правый угол за пределами прямоугольника
Восемь областей за пределами центра (ограниченного прямоугольником) можно рассматривать как рамку изображения, к которому при масштабировании применяются особые правила.
При масштабировании объекта отображения с определенным свойством scale9Grid текст и градиенты масштабируются в обычном порядке, однако к остальным типам объектов применяются следующие правила.
- Содержимое центральной области масштабируется как обычно.
- Содержимое в углах не масштабируется.
- Содержимое в верхней и нижней областях масштабируется только по горизонтали. Содержимое в правой и левой областях масштабируется только по вертикали.
- Все заливки (включая растровые изображения, видео и градиенты) растягиваются в соответствии с новыми размерами.
При повороте экранного объекта последующее масштабирование выполняется в обычном режиме (и свойство scale9Grid игнорируется).
В качестве примера рассмотрим следующий экранный объект и прямоугольник, применяемый в качестве его свойства scale9Grid
Экранный объект. |
Красный прямоугольник показывает |
При масштабировании или растягивании экранного объекта объекты в пределах прямоугольника масштабируются в обычном порядке, а объекты за его пределами масштабируются согласно правилам scale9Grid.
| Масштабируется до 75% | ![]() |
| Масштабируется до 50% | ![]() |
| Масштабируется до 25% | ![]() |
| Вытягивается по горизонтали до 150% | ![]() |
Как правило, параметрscale9Grid используется для установки экранного объекта в качестве компонента, области краев которого сохраняют ширину при масштабировании компонента.
Реализация
public function get scale9Grid():Rectangle public function set scale9Grid(value:Rectangle):voidВыдает
ArgumentError — Если методу передается недопустимый аргумент.
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Указывает горизонтальное масштабирование объекта от точки регистрации (в процентах). Точка регистрации по умолчанию — (0,0). 1,0 соответствует масштабу 100%.
Масштабирование локальной системы координат изменяет значения свойств x и y, определяемые в целых пикселях.
Реализация
public function get scaleX():Number public function set scaleX(value:Number):voidПример ( Использование этого примера )
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, Flash Lite 4 |
Указывает вертикальное масштабирование объекта от точки регистрации (в процентах). Точка регистрации по умолчанию — (0,0). 1,0 соответствует масштабу 100%.
Масштабирование локальной системы координат изменяет значения свойств x и y, определяемые в целых пикселях.
Реализация
public function get scaleY():Number public function set scaleY(value:Number):voidПример ( Использование этого примера )
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 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5 |
Указывает глубину масштабирования объекта (в процентах) относительно точки регистрации этого объекта. Точка регистрации по умолчанию — (0,0). 1,0 соответствует масштабу 100%.
Масштабирование локальной системы координат изменяет значения свойств x, y и z, определяемые в целых пикселях.
Реализация
public function get scaleZ():Number public function set scaleZ(value:Number):voidСвязанные элементы API
scrollRect | свойство |
scrollRect:Rectangle| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Прямоугольная область прокрутки экранного объекта. Экранный объект обрезается до размера, определенного прямоугольником, и прокручивается в его границах при изменении свойств x и y объекта scrollRect.
Свойства объекта scrollRect объекта Rectangle используют координатную плоскость экранного объекта и масштабируются просто как общий экранный объект. Углы обрезанного окна на экранном объекте прокрутки являются исходной точкой экранного объекта (0,0) и точкой, определенной шириной и высотой прямоугольника. Они не центрируются по исходной точке, а используют ее для определения верхнего левого угла области. Прокручиваемый экранный объект всегда прокручивается прибавлениями по целым пикселям.
Можно прокручивать объект влево и вправо, настроив свойство x для scrollRect объекта Rectangle. Чтобы прокручивать объект вверх и вниз, нужно настроить свойство y для scrollRect объекта Rectangle. Если экранный объект, повернутый на 90°, прокручивается влево и вправо, на самом деле экранный объект прокручивается вверх и вниз.
Обратите внимание, что изменения свойства scrollRect обрабатываются, только когда объект визуализован. Такие методы, как localToGlobal, могут не давать ожидаемого результата, если они вызываются сразу после изменения scrollRect.
Примечание. Начиная с версии Flash Player 11.4/AIR 3.4 отрицательные значения для ширины или высоты прямоугольника изменены на 0.
Реализация
public function get scrollRect():Rectangle public function set scrollRect(value:Rectangle):voidСвязанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Класс Stage экранного объекта. Программа среды выполнения Flash имеет только один объект Stage. Например, можно создать и загрузить в список отображения несколько экранных объектов, и для каждого из них свойство stage будет ссылаться на один и тот же объект Stage (даже если экранный объект принадлежит загруженному SWF-файлу).
Если экранный объект не добавлен в список отображения, его свойство stage имеет значение null.
Реализация
public function get stage():StageПример ( Использование этого примера )
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:flash.geom:Transform| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта. Конкретные свойства (matrix, colorTransform и три свойства только для чтения (concatenatedMatrix, concatenatedColorTransform и pixelBounds)) описываются в разделе, посвященном классу Transform.
Каждое из свойств объекта transform представляет собой объект. Это очень важно, так как единственным способом задать новые значения для объектов matrix или colorTransform является создание нового объекта и его копирование в свойство transform.matrix или transform.colorTransform.
Например, чтобы увеличить значение tx матрицы экранного объекта, необходимо скопировать весь объект matrix, а затем копировать новый объект в свойство matrix объекта transform.
var myMatrix:Matrix = myDisplayObject.transform.matrix;
myMatrix.tx += 10;
myDisplayObject.transform.matrix = myMatrix;
Свойство tx нельзя задавать напрямую. Следующий код не действует на myDisplayObject.
myDisplayObject.transform.matrix.tx += 10;
Также можно копировать весь объект transform и назначить его свойству transform другого экранного объекта. Например, следующий код копирует весь объект transform из myOldDisplayObj в myNewDisplayObj.
myNewDisplayObj.transform = myOldDisplayObj.transform;
Полученный экранный объект, myNewDisplayObj, теперь имеет те же значения для матрицы, преобразования цвета и пиксельных границ, что и старый экранный объект, myOldDisplayObj.
Обратите внимание, что на устройствах AIR for TV используется аппаратное ускорение, если оно доступно, для преобразований цветов.
Реализация
public function get transform():flash.geom:Transform public function set transform(value:flash.geom:Transform):voidСвязанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Определяет видимость экранного объекта. Невидимые экранные объекты отключаются. Например, если visible=false для экземпляра InteractiveObject, то он не реагирует на щелчки мыши.
Реализация
public function get visible():Boolean public function set visible(value:Boolean):voidПример ( Использование этого примера )
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, Flash Lite 4 |
Указывает ширину экранного объекта в пикселях. Ширина вычисляется на основе границ содержимого экранного объекта. Когда задается свойство 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Пример ( Использование этого примера )
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, Flash Lite 4 |
Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. Если объект включен в DisplayObjectContainer с преобразованиями, то он находится в локальной системе координат содержащего его DisplayObjectContainer. Таким образом, если объект DisplayObjectContainer повернут на 90° против часовой стрелки, дочерние элементы наследуют систему координат с поворотом на 90° против часовой стрелки. Координаты объекта определяются относительно положения точки регистрации.
Реализация
public function get x():Number public function set x(value:Number):voidПример ( Использование этого примера )
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, Flash Lite 4 |
Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. Если объект включен в DisplayObjectContainer с преобразованиями, то он находится в локальной системе координат содержащего его DisplayObjectContainer. Таким образом, если объект DisplayObjectContainer повернут на 90° против часовой стрелки, дочерние элементы наследуют систему координат с поворотом на 90° против часовой стрелки. Координаты объекта определяются относительно положения точки регистрации.
Реализация
public function get y():Number public function set y(value:Number):voidПример ( Использование этого примера )
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, AIR 1.5 |
Указывает положение по оси z экземпляра DisplayObject относительно трехмерного вышестоящего контейнера. Свойство z предназначено для работы с трехмерными системами координат, а не с экранными или пиксельными координатами.
При установке свойства z экранного объекта на значение, отличное от значения по умолчанию, равного 0, автоматически создается соответствующий объект Matrix3D. для регулирования положения и ориентации экранного объекта в трехмерном пространстве. При работе с осью z существующее поведение свойств х и у изменяется с экранных или пиксельных координат на положения относительно трехмерного вышестоящего контейнера.
Например, потомок объекта _root в положении x = 100, y = 100, z = 200 не отрисовывается в пиксельном положении (100,100). Потомок отображается в месте, определенном путем вычисления трехмерной проекции. Вычисление производится следующим образом:
(x*cameraFocalLength/cameraRelativeZPosition, y*cameraFocalLength/cameraRelativeZPosition)
Реализация
public function get z():Number public function set z(value:Number):voidСвязанные элементы API
Пример ( Использование этого примера )
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;
}
}
}
getBounds | () | метод |
public function getBounds(targetCoordinateSpace:DisplayObject):Rectangle| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает прямоугольник, определяющий область экранного объекта, которая относится к системе координат объекта 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.
|
Связанные элементы API
getRect | () | метод |
public function getRect(targetCoordinateSpace:DisplayObject):Rectangle| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Возвращает прямоугольник, определяющий границу объекта отображения по системе координат, определенной параметром targetCoordinateSpace за исключением линий фигур. Значения, возвращаемые методом getRect(), равны или меньше возвращаемых методом getBounds().
Примечание. Используйте методы localToGlobal() и globalToLocal() для преобразования локальных координат отображаемого объекта в координаты рабочей области и наоборот.
Параметры
targetCoordinateSpace:DisplayObject — Экранный объект, определяющий используемую систему координат
|
Rectangle — Прямоугольник, определяющий область экранного объекта относительно системы координат объекта targetCoordinateSpace.
|
Связанные элементы API
Пример ( Использование этого примера )
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, Flash Lite 4 |
Преобразует объект Point из координат рабочей области (глобальных) в координаты экранного объекта (локальные).
Чтобы воспользоваться этим методом, сначала нужно создать экземпляр класса Point. Присвоенные вами значения x и y представляют глобальные координаты, так как они указаны относительно исходной точки (0,0) основной области отображения. Затем экземпляр Point следует передать в качестве параметра методу globalToLocal(). Этот метод возвращает новый объект Point со значениями x и y, указанными относительно исходной точки отображаемого объекта, а не рабочей области.
Параметры
point:Point — Объект, созданный с использованием класса Point. Объект Point задает координаты x и y в качестве свойств.
|
Point — Объект Point с координатами относительно отображаемого объекта.
|
Связанные элементы API
Пример ( Использование этого примера )
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 | () | метод |
public function globalToLocal3D(point:Point):Vector3D| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Преобразует двумерный объект 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, Flash Lite 4 |
Вычисляет ограничительную рамку экранного объекта, чтобы определить, не перекрывает и не пересекает ли она ограничительную рамку экранного объекта obj.
Параметры
obj:DisplayObject — Экранный объект для сравнения.
|
Boolean — true, если ограничительные рамки экранных объектов пересекаются; false, если нет.
|
Пример ( Использование этого примера )
hitTestObject(). Обратите внимание на то, что хотя circle2 и circle3 не перекрывают друг друга, их ограничительные рамки пересекаются. Таким образом, проверка circle2 и circle3 на нажатие возвращает значение true.
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)); // false 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, Flash Lite 4 |
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее. Параметры x и y задают точку в координатной плоскости рабочей области, а не контейнера экранных объектов, содержащего объект (если контейнером не является сама рабочая область).
Параметры
x:Number — Координата x, сравниваемая с данным объектом.
| |
y:Number — Координата у, сравниваемая с данным объектом.
| |
shapeFlag:Boolean (default = false) — Указывает, следует ли выполнять тестирование по фактическим пикселям объекта (true) или по рамке (false).
|
Boolean — Значение — true, если экранный объект перекрывает заданный объект или пересекается с ним; в противном случае — false.
|
Связанные элементы API
Пример ( Использование этого примера )
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 | () | метод |
public function local3DToGlobal(point3d:Vector3D):Point| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 1.5, Flash Lite 4 |
Преобразует трехмерный объект 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, Flash Lite 4 |
Преобразует объект point из координат экранного объекта (локальных) в координаты рабочей области (глобальные).
Этот метод позволяет преобразовать заданные координаты x и y из значений относительно исходной точки (0, 0) конкретного объекта (локальных координат) в значения относительно исходной точки рабочей области (глобальные координаты).
Чтобы воспользоваться этим методом, сначала нужно создать экземпляр класса Point. Присвоенные вами значения x и y представляют локальные координаты, так как они указаны относительно исходной точки экранного объекта.
Затем созданный экземпляр Point передается в качестве параметра методу localToGlobal(). Этот метод возвращает новый объект Point со значениями x и y, указанными относительно исходной точки рабочей области, а не объекта отображения.
Параметры
point:Point — Имя или идентификатор точки, созданной с использованием класса Point, в качестве свойств которой заданы координаты x и y.
|
Point — Объект Point с координатами относительно рабочей области.
|
Связанные элементы API
Пример ( Использование этого примера )
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));
}
added | Событие |
flash.events.Eventсвойство Event.type =
flash.events.Event.ADDED| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Отправляется, когда экранный объект добавляется в список отображения. Это событие запускается следующими методами: DisplayObjectContainer.addChild(), DisplayObjectContainer.addChildAt().
Event.ADDED определяет значение свойства type объекта события added.
Это событие имеет следующие свойства:
| Свойство | Значение |
|---|---|
bubbles | true |
cancelable | false; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Экземпляр DisplayObject, добавляемый в список отображения. Свойство target не всегда является объектом из списка отображения, для которого зарегистрирован прослушиватель событий. Используйте свойство currentTarget для обращения к объекту в списке отображения, обрабатывающему событие в данный момент. |
Связанные элементы API
addedToStage | Событие |
flash.events.Eventсвойство Event.type =
flash.events.Event.ADDED_TO_STAGE| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
Отправляется, когда экранный объект добавляется к списку отображения на монтажном столе либо непосредственно, либо путем добавления поддерева, содержащего экранный объект. Это событие запускается следующими методами: DisplayObjectContainer.addChild(), DisplayObjectContainer.addChildAt().
Event.ADDED_TO_STAGE определяет значение свойства type объекта события addedToStage.
Это событие имеет следующие свойства:
| Свойство | Значение |
|---|---|
bubbles | false |
cancelable | false; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Экземпляр DisplayObject, добавляемый в список отображения рабочей области напрямую или путем добавления поддерева, в котором он содержится. Если экземпляр DisplayObject добавляется напрямую, перед этим событием отправляется событие added. |
Связанные элементы API
enterFrame | Событие |
flash.events.Eventсвойство Event.type =
flash.events.Event.ENTER_FRAME| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
[многоадресное событие] Отправляется, когда точка воспроизведения переходит в новый кадр. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.
КонстантаEvent.ENTER_FRAME определяет значение свойства type объекта события enterFrame.
Примечание. Это событие не имеет фазы захвата и фазы восходящей цепочки, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.
Это событие имеет следующие свойства:
| Свойство | Значение |
|---|---|
bubbles | false |
cancelable | false; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Любой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события enterFrame. |
exitFrame | Событие |
flash.events.Eventсвойство Event.type =
flash.events.Event.EXIT_FRAME| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 2, Flash Lite 4 |
[многоадресное событие] Отправляется, когда точка воспроизведения покидает текущий кадр. Все сценарии кадров выполнены. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.
КонстантаEvent.EXIT_FRAME определяет значение свойства type объекта события exitFrame.
Примечание. Это событие не имеет фазы захвата и фазы восходящей цепочки, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.
Это событие имеет следующие свойства:
| Свойство | Значение |
|---|---|
bubbles | false |
cancelable | false; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Любой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события enterFrame. |
frameConstructed | Событие |
flash.events.Eventсвойство Event.type =
flash.events.Event.FRAME_CONSTRUCTED| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | Flash Player 10, AIR 2, Flash Lite 4 |
[многоадресное событие] Отправляется после завершения работы конструкторов экранных объектов кадра до выполнения сценариев кадра. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.
КонстантаEvent.FRAME_CONSTRUCTED определяет значение свойства type объекта события frameConstructed.
Примечание. Это событие не имеет фазы захвата и фазы восходящей цепочки, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.
Это событие имеет следующие свойства:
| Свойство | Значение |
|---|---|
bubbles | false |
cancelable | false; поведение по умолчанию, подлежащее отмене, не определено. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Любой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события frameConstructed. |
removed | Событие |
flash.events.Eventсвойство Event.type =
flash.events.Event.REMOVED| Язык версии: | ActionScript 3.0 |
| Версии среды выполнения: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Отправляется перед удалением экранного объекта из списка отображения. Это событие генерируют два метода класса DisplayObjectContainer: removeChild() и removeChildAt().
Следующие методы объекта DisplayObjectContainer также генерируют это событие, если один объект должен быть удален с целью освобождения места для нового: addChild(), addChildAt() и setChildIndex().
Event.REMOVED определяет значение свойства type объекта события removed.
Это событие имеет следующие свойства:
| Свойство | Значение |
|---|---|
bubbles | true |
cancelable | false; поведение по умолчанию, подлежащее отмене, не определено. |
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, Flash Lite 4 |
Отправляется перед удалением экранного объекта из списка отображения либо напрямую, либо путем удаления поддерева, содержащего экранный объект. Это событие генерируют два метода класса DisplayObjectContainer: removeChild() и removeChildAt().
Следующие методы объекта DisplayObjectContainer также генерируют это событие, если один объект должен быть удален с целью освобождения места для нового: addChild(), addChildAt() и setChildIndex().
Event.REMOVED_FROM_STAGE определяет значение свойства type объекта события removedFromStage.
Это событие имеет следующие свойства:
| Свойство | Значение |
|---|---|
bubbles | false |
cancelable | false; поведение по умолчанию, подлежащее отмене, не определено. |
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 Lite 4 |
[многоадресное событие] Отправляется перед обновлением и визуализацией списка отображения. Это событие дает последнюю возможность объектам, прослушивающим данное событие, внести изменения перед визуализацией списка отображения. Метод invalidate() объекта Stage необходимо вызывать каждый раз, когда нужно отправить событие render. События render отправляются объекту только при условии отношений доверия между ним и объектом, вызвавшим метод Stage.invalidate(). Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.
Примечание. Это событие не отправляется, если дисплей не выполняет визуализацию. Это происходит, когда содержимое свернуто или скрыто.
КонстантаEvent.RENDER определяет значение свойства type объекта события render.
Примечание. Это событие не имеет фазы захвата и фазы восходящей цепочки, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.
Это событие имеет следующие свойства:
| Свойство | Значение |
|---|---|
bubbles | false |
cancelable | false; поведение по умолчанию отменить невозможно. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Любой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события render. |
DisplayObjectExample рисуется оранжевый квадрат в углу рабочей области, который затем реагирует на события, для каждого из которых отображается текстовая информация. Это можно сделать, выполнив следующие действия.
- Объявляются свойства класса для цвета и размера квадрата.
- Конструктор вызывает метод
draw(), который рисует оранжевый квадрат на монтажном столе в точке с координатами по умолчанию x = 0, y = 0. - Для квадрата добавляются следующие методы прослушивателей событий.
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);
}
}
Tue Jun 12 2018, 11:34 AM Z
Скрыть унаследованные общедоступные свойства
Показать унаследованные общедоступные свойства

















