Пакет | 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):void
scale9Grid | свойство |
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