Пакет | flash.display |
Класс | public class DisplayObject |
Наследование | DisplayObject ![]() ![]() |
Реализует | IBitmapDrawable |
Подклассы | AVM1Movie, Bitmap, InteractiveObject, MorphShape, Shape, StaticText, Video |
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Класс 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.
См. также
Свойство | Определено | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
Текущие параметры специальных возможностей для данного экранного объекта. | DisplayObject | ||
alpha : Number
Указывает значение альфа-прозрачности заданного объекта. | DisplayObject | ||
blendMode : String
Значение класса BlendMode, задающее режим наложения. | DisplayObject | ||
blendShader : Shader [только для записи]
Задает затенение, используемое при наложении переднего плана на фон. | DisplayObject | ||
cacheAsBitmap : Boolean
При значении true проигрыватель Flash Player кэширует внутреннее растровое представление экранного объекта. | DisplayObject | ||
![]() | constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | |
filters : Array
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. | DisplayObject | ||
height : Number
Указывает высоту экранного объекта в пикселах. | DisplayObject | ||
loaderInfo : LoaderInfo [только для чтения]
Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект. | DisplayObject | ||
mask : DisplayObject
Вызывающий экранный объект маскируется заданным объектом mask. | DisplayObject | ||
mouseX : Number [только для чтения]
Указывает координату x положения курсора мыши (в пикселах). | DisplayObject | ||
mouseY : Number [только для чтения]
Указывает координату y положения курсора мыши (в пикселах). | DisplayObject | ||
name : String
Указывает имя экземпляра DisplayObject. | DisplayObject | ||
opaqueBackground : Object
Определяет, является ли экранный объект непрозрачным с определенным цветом фона. | DisplayObject | ||
parent : DisplayObjectContainer [только для чтения]
Указывает объект DisplayObjectContainer, содержащий данный экранный объект. | DisplayObject | ||
![]() | prototype : Object [статические]
Ссылка на модель объекта класса или функции. | Object | |
root : DisplayObject [только для чтения]
В случае с экранным объектом в загруженном SWF-файле свойством root является самый верхний экранный объект в части структуры дерева списка отображения, представленной этим SWF-файлом. | DisplayObject | ||
rotation : Number
Указывает поворот экземпляра DisplayObject относительно его исходной ориентации (в градусах). | DisplayObject | ||
rotationX : Number
Обозначает поворот в градусах по оси x экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. | DisplayObject | ||
rotationY : Number
Обозначает поворот в градусах по оси у экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. | DisplayObject | ||
rotationZ : Number
Обозначает поворот в градусах по оси z экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. | DisplayObject | ||
scale9Grid : Rectangle
Текущая активная сетка масштабирования. | DisplayObject | ||
scaleX : Number
Указывает горизонтальное масштабирование объекта от точки регистрации (в процентах). | DisplayObject | ||
scaleY : Number
Указывает вертикальное масштабирование объекта от точки регистрации (в процентах). | DisplayObject | ||
scaleZ : Number
Указывает масштабирование глубины объекта (в процентах) относительно точки регистрации этого объекта. | DisplayObject | ||
scrollRect : Rectangle
Прямоугольная область прокрутки экранного объекта. | DisplayObject | ||
stage : Stage [только для чтения]
Класс Stage экранного объекта. | DisplayObject | ||
transform : Transform
Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта. | DisplayObject | ||
visible : Boolean
Определяет видимость экранного объекта. | DisplayObject | ||
width : Number
Указывает ширину экранного объекта в пикселах. | DisplayObject | ||
x : Number
Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. | DisplayObject | ||
y : Number
Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. | DisplayObject | ||
z : Number
Указывает положение по оси z экземпляра DisplayObject относительно трехмерного родительского контейнера. | DisplayObject |
Метод | Определено | ||
---|---|---|---|
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события в объекте EventDispatcher, в результате чего прослушиватель будет получать уведомления о событиях. | EventDispatcher | |
![]() |
Передает событие в поток событий. | EventDispatcher | |
DisplayObject | |||
Возвращает прямоугольник, определяющий область экранного объекта, которая относится к системе координат объекта targetCoordinateSpace. | DisplayObject | ||
DisplayObject | |||
Возвращает прямоугольник, определяющий границу экранного объекта по системе координат, заданной параметром targetCoordinateSpace, за исключением линий фигур. | DisplayObject | ||
Преобразует объект Point из координат рабочей области (глобальных) в координаты экранного объекта (локальные). | DisplayObject | ||
Преобразует двумерный объект Point из координат рабочей области (глобальных) в координаты экранного трехмерного объекта (локальные). | DisplayObject | ||
![]() |
Проверяет наличие у объекта EventDispatcher прослушивателей событий, которые зарегистрированы для получения уведомлений о событиях определенного типа. | EventDispatcher | |
![]() |
Показывает, определено ли заданное свойство для объекта. | Object | |
Оценивает экранный объект, чтобы определить, перекрывает ли он экранный объект obj или пересекается с ним. | DisplayObject | ||
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x и y, или пересекает ее. | DisplayObject | ||
![]() |
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | |
Преобразует трехмерный объект point из координат трехмерного экранного объекта (локальных) в двухмерный объект point с координатами рабочей области (глобальными). | DisplayObject | ||
Преобразует объект point из координат экранного объекта (локальных) в координаты рабочей области (глобальные). | DisplayObject | ||
DisplayObject | |||
DisplayObject | |||
![]() |
Показывает наличие заданного свойства и его перечисляемость. | Object | |
![]() |
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | |
![]() |
Задает доступность динамического свойства для операций цикла. | Object | |
![]() |
Возвращает строковое представление заданного объекта. | Object | |
![]() |
Возвращает элементарное значение заданного объекта. | Object | |
![]() |
Проверяет, зарегистрирован ли прослушиватель событий в объекте EventDispatcher или в любом из его предков для получения уведомлений о событиях определенного типа. | EventDispatcher |
Событие | Сводка | Определено | ||
---|---|---|---|---|
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player перемещается в фокус операционной системы и становится активным. | EventDispatcher | ||
Отправляется, когда экранный объект добавляется в список отображения. | DisplayObject | |||
Отправляется, когда экранный объект добавляется к списку отображения в рабочей области, либо непосредственно, либо путем добавления поддерева, содержащего экранный объект. | DisplayObject | |||
![]() | [многоадресное событие] Отправляется, когда проигрыватель Flash Player покидает фокус операционной системы и становится неактивным. | EventDispatcher | ||
[многоадресное событие] Отправляется, когда точка воспроизведения переходит в новый кадр. | DisplayObject | |||
[многоадресное событие] Отправляется, когда точка воспроизведения покидает текущий кадр. | DisplayObject | |||
[многоадресное событие] Отправляется после завершения работы конструкторов экранных объектов кадра до выполнения сценариев кадра. | DisplayObject | |||
Отправляется перед удалением экранного объекта из списка отображения. | DisplayObject | |||
Отправляется перед удалением экранного объекта из списка отображения, либо непосредственно, либо путем удаления поддерева, содержащего экранный объект. | DisplayObject | |||
[многоадресное событие] Отправляется перед обновлением и визуализацией списка отображения. | DisplayObject |
accessibilityProperties | свойство |
accessibilityProperties:AccessibilityProperties
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Текущие параметры специальных возможностей для данного экранного объекта. Если модифицируется свойство accessibilityProperties
или любые поля в accessibilityProperties
, необходимо вызвать метод Accessibility.updateProperties()
, чтобы изменения вступили в силу.
public function get accessibilityProperties():AccessibilityProperties
public function set accessibilityProperties(value:AccessibilityProperties):void
См. также
import flash.text.TextField; import flash.accessibility.AccessibilityProperties; import flash.accessibility.Accessibility; import flash.system.Capabilities; var tf:TextField = new TextField(); tf.text = "hello"; var accessProps:AccessibilityProperties = new AccessibilityProperties(); accessProps.name = "Greeting"; tf.accessibilityProperties = accessProps; if (Capabilities.hasAccessibility) { Accessibility.updateProperties(); } trace(tf.accessibilityProperties.name); // Greeting
alpha | свойство |
alpha:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает значение альфа-прозрачности заданного объекта. Допустимые значения находятся в диапазоне 0 (полностью прозрачный) — 1 (полностью непрозрачный). Значение по умолчанию 1. Экранные объекты, для которых значение alpha
равно 0, являются активными, несмотря на невидимость.
public function get alpha():Number
public function set alpha(value:Number):void
alpha
значение 50%, когда на него наводится мышь.import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFF0000); circle.graphics.drawCircle(40, 40, 40); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject); circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject); function dimObject(event:MouseEvent):void { event.target.alpha = 0.5; } function restoreObject(event:MouseEvent):void { event.target.alpha = 1.0; }
blendMode | свойство |
blendMode:String
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Значение класса BlendMode, задающее режим наложения. Растровое изображение может отрисовываться внутренними средствами двумя способами. Если включен режим наложения или внешняя маска обрезки, растровое изображение рисуется путем добавления квадрата, заполненного растровым изображением, для векторной визуализации. При попытке задать свойству недопустимое значение проигрыватель Flash Player использует значение BlendMode.NORMAL
.
Flash Player применяет свойство blendMode
к каждому пикселу экранного объекта. Каждый пиксел состоит из трех основных цветов (красного, зеленого и синего) со значениями в пределах 0x00 — 0xFF. Проигрыватель Flash Player сравнивает каждый составляющий цвет одного пиксела в фрагменте ролика с соответствующим цветом пиксела фона. Например, если blendMode
имеет значение BlendMode.LIGHTEN
, Flash Player сравнивает значение красного для экранного объекта с значением красного для фона, и использует более светлый из них в качестве красного компонента отображаемого цвета.
В следующей таблице описываются параметры blendMode
. Класс BlendMode определяет строковые значения для использования. На иллюстрациях в таблице иллюстрируются значения blendMode
, примененные к круглому экранному объекту (2), наложенному на другой экранный объект (1).
Константа 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 пиксела фона имеет значение 0xAA2233, то значением 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
См. также
BlendMode.SUBTRACT
, когда на него наводится указатель.import flash.display.Sprite; import flash.display.BlendMode; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF88CC); square.graphics.drawRect(0, 0, 80, 80); addChild(square); var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xAA0022); circle.graphics.drawCircle(40, 40, 40); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_OVER, dimObject); circle.addEventListener(MouseEvent.MOUSE_OUT, restoreObject); function dimObject(event:MouseEvent):void { event.target.blendMode = BlendMode.SUBTRACT; } function restoreObject(event:MouseEvent):void { event.target.blendMode = BlendMode.NORMAL; }
blendShader | свойство |
blendShader:Shader
[только для записи] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Задает затенение, используемое при наложении переднего плана на фон. Если свойство blendMode
настроено на BlendMode.SHADER
, то в качестве выхода режима наложения для экранного объекта используется объект Shader.
Применение свойства blendShader
к экземпляру Shader автоматически приведет к смене значения свойства blendMode
на BlendMode.SHADER
. Если же свойство blendShader
настроено (свойство blendMode
принимает значение BlendMode.SHADER
), то значение свойства blendMode
изменяется. Режим наложения можно быстро перенастроить на использование затенения для наложения, задав свойству blendMode
значение BlendMode.SHADER
. Необходимость в повторной настройке свойства blendShader
отсутствует, кроме тех случаев, когда требуется сменить затенение, используемое для режима наложения.
Присвоенный свойству blendShader
объект Shader должен задавать как минимум пару входов image4
. Указывать входы в коде с помощью свойств input
связанных объектов ShaderInput необходимости нет. В качестве первого входного изображения используется экранный объект на заднем плане (вход со значением index
0). В качестве второго входного изображения используется экранный объект на переднем плане (вход со значением index
1). Затенение, используемое в качестве затенения наложения, может задавать больше двух входов. В этом случае все дополнительные входы следует задавать в свойстве input
объекта ShaderInput.
При присвоении данному свойству экземпляра объекта Shader происходит копирование затенения на внутреннем уровне. При выполнении операции наложения используется эта копия, а не ссылка за исходное затенение. Изменения параметров затенения (изменение значения параметра, ввода или байт-кода) не влияют на используемую для наложения копию затенения.
flash10 function set blendShader(value:Shader):void
ArgumentError — Если тип выхода затенения не совместим с данной операцией (затенение должно задать выходpixel4 ).
| |
ArgumentError — Если затенение задает меньше двух входных изображений, или если первые два входа не являются входами image4 .
| |
ArgumentError — Если затенение задает неподдерживаемое входное изображение.
| |
ArgumentError — Если объект ByteArray или Vector.В качестве ввода используется экземпляр <Number>, а свойства width и height для ShaderInput не указаны, либо указанные значения не соответствуют количеству данных во входном объекте. Дополнительные сведения см. в описании ShaderInput.input .
|
См. также
cacheAsBitmap | свойство |
cacheAsBitmap:Boolean
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
При значении true
проигрыватель Flash Player кэширует внутреннее растровое представление экранного объекта. Такое кэширование может повысить производительность для экранных объектов со сложным векторным содержимым.
Все векторные данные для экранного объекта, имеющего кэшированный растр, отрисовываются в растровом изображении, а не в основной области отображения. Затем это растровое изображение копируется в основную область отображения в виде пикселов без растяжений и поворотов, которые привязываются к ближайшим пиксельным границам. Пикселы отображаются в точном соответствии с родительским объектом. При изменении границ растрового изображения оно не растягивается, а создается повторно.
Внутреннее растровое представление создается, только если свойство cacheAsBitmap
имеет значение true
.
После задания свойству cacheAsBitmap
значения true
визуализация остается без изменений, однако экранный объект автоматически выполняет привязку к пикселам. Скорость анимации может значительно увеличиться в зависимости от сложности векторного содержимого
Свойство cacheAsBitmap
автоматически получает значение true
каждый раз, когда к экранному объекту применяется фильтр (при непустом массиве filter
). Если к экранному объекту применяется, его свойство cacheAsBitmap
отражается в значении true
, даже если ему было задано значение false
. Если удалить все фильтры экранного объекта, параметр cacheAsBitmap
вернется к последнему заданному значению.
В следующих случаях экранный объект не использует растровое изображение, даже если свойство cacheAsBitmap
имеет значение true
, а вместо этого визуализирует векторные данные:
Свойство cacheAsBitmap
лучше всего использовать для фрагментов роликов, в которых преобладает статичное содержимое и редко используется масштабирование и поворот. Использование в таких фрагментах роликов свойства cacheAsBitmap
может повысить производительность при преобразовании фрагмента ролика (при изменении координат x и y).
public function get cacheAsBitmap():Boolean
public function set cacheAsBitmap(value:Boolean):void
См. также
cacheAsBitmap
, которое получает значение true
при применении фильтра.
import flash.display.Sprite; import flash.filters.DropShadowFilter var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xAA0022); circle.graphics.drawCircle(40, 40, 40); addChild(circle); trace(circle.cacheAsBitmap); // false var filter:DropShadowFilter = new DropShadowFilter(); circle.filters = [filter]; trace(circle.cacheAsBitmap); // true
filters | свойство |
filters:Array
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Индексированный массив, который содержит все объекты filter, связанные в настоящий момент с экранным объектом. Пакет flash.filters содержит несколько классов, определяющих конкретные фильтры, доступные для использования.
Фильтры можно применять в ходе работы в инструменте разработки Flash или во время выполнения с использованием кода ActionScript. Чтобы применить фильтр с помощью ActionScript, необходимо создать временную копию всего массива filters
, внести в нее необходимые изменения, а затем присвоить полученное значение исходному массиву filters
. Нельзя добавлять новый объект filter напрямую в массив filters
.
Чтобы добавить фильтр с помощью ActionScript, выполните следующие действия (предположим, что целевой экранный объект называется myDisplayObject
).
myDisplayObject.filters
временному массиву, например массиву с именем myFilters
.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, и затенение не задает ни одного входного изображения, или если первичный вход не является входом pixel4 ).
| |
ArgumentError — Если в filters входит ShaderFilter, и затенение задает неподдерживаемое входное изображение.
| |
ArgumentError — Если в filters входит ShaderFilter, ByteArray или Vector.В качестве ввода затенения используется экземпляр <Number>, а свойства width и height для ShaderInput не указаны или не соответствуют входным данным.. Дополнительные сведения см. в описании ShaderInput.input .
|
См. также
height | свойство |
height:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает высоту экранного объекта в пикселах. Высота вычисляется на основе границ содержимого экранного объекта. Когда задается свойство height
, соответствующим образом изменяется и свойство scaleY
, как показано в следующем коде.
var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;
За исключением объектов TextField и Video, экранные объекты без содержимого (например, пустой спрайт), имеют высоту 0, даже если задать свойству height
другое значение.
public function get height():Number
public function set height(value:Number):void
height
каждого из них на основе их свойства textHeight
; также путем задания свойства y
определяется положение второго текстового поля.
import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2);
loaderInfo | свойство |
loaderInfo:LoaderInfo
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает объект LoaderInfo, содержащий сведения о загрузке файла, к которому принадлежит этот экранный объект. Свойство loaderInfo
определяется только для корневого экранного объекта SWF-файла или для загруженного объекта Bitmap (а не нарисованного с помощью ActionScript). Чтобы найти объект loaderInfo
, связанный с SWF-файлом, содержащим экранный объект с именем myDisplayObject
, используйте myDisplayObject.root.loaderInfo
.
Загрузку большого SWF-файла можно отслеживать с помощью метода this.root.loaderInfo.addEventListener(Event.COMPLETE, func)
.
public function get loaderInfo():LoaderInfo
См. также
this
относится к экранному объекту. Код выдает URL корневого SWF-файла для экранного объекта.
trace (this.loaderInfo.url);
mask | свойство |
mask:DisplayObject
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Вызывающий экранный объект маскируется заданным объектом mask
. Чтобы обеспечить маскирование при масштабировании рабочей области, экранный объект mask
должен быть активным элементом списка отображения. Сам объект mask
не отрисовывается. Чтобы удалить маску, нужно задать для mask
значение null
.
Чтобы обеспечить масштабирование объекта mask, его необходимо добавить в список отображения. Чтобы обеспечить возможность перетаскивания маскирующего объекта Sprite (вызовом методаstartDrag()
), его необходимо добавить в список отображения. Чтобы вызвать метод startDrag()
для маскирующего спрайта при отправке им события mouseDown
, задайте свойству спрайта buttonMode
свойство true
.
Примечание. Один объект mask
не может использоваться для маскирования нескольких вызывающих экранных объектов. Когда mask
назначается второму экранному объекту, он перестает быть маской первого, для которого свойство mask
получает значение null
.
public function get mask():DisplayObject
public function set mask(value:DisplayObject):void
drag()
вызывает метод startDrag()
маскирующего объекта Sprite.import flash.text.TextField; import flash.display.Sprite; import flash.events.MouseEvent; var tf:TextField = new TextField(); tf.text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, " + "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " tf.selectable = false; tf.wordWrap = true; tf.width = 150; addChild(tf); var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 40, 40); addChild(square); tf.mask = square; tf.addEventListener(MouseEvent.MOUSE_DOWN, drag); tf.addEventListener(MouseEvent.MOUSE_UP, noDrag); function drag(event:MouseEvent):void { square.startDrag(); } function noDrag(event:MouseEvent):void { square.stopDrag(); }
mouseX | свойство |
mouseX:Number
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает координату x положения курсора мыши (в пикселах).
public function get mouseX():Number
mouseX
и mouseY
, когда пользователь щелкает спрайт.
import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 200, 200); addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates); function traceCoordinates(event:MouseEvent):void { trace(square.mouseX, square.mouseY); }
mouseY | свойство |
mouseY:Number
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает координату y положения курсора мыши (в пикселах).
public function get mouseY():Number
mouseX
и mouseY
, когда пользователь щелкает спрайт.
import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 200, 200); addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates); function traceCoordinates(event:MouseEvent):void { trace(square.mouseX, square.mouseY); }
name | свойство |
name:String
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает имя экземпляра DisplayObject. Объект можно найти в списке потомков родительского контейнера экранных объектов путем вызова метода getChildByName()
контейнера.
public function get name():String
public function set name(value:String):void
IllegalOperationError — При попытке задать это свойство для объекта, помещенного на временную шкалу инструмента разработки Flash.
|
name
, когда пользователь щелкает один из них.
import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFF0000); circle1.graphics.drawCircle(40, 40, 40); circle1.name = "circle1"; addChild(circle1); circle1.addEventListener(MouseEvent.CLICK, traceName); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0x0000FF); circle2.graphics.drawCircle(140, 40, 40); circle2.name = "circle2"; addChild(circle2); circle2.addEventListener(MouseEvent.CLICK, traceName); function traceName(event:MouseEvent):void { trace(event.target.name); }
opaqueBackground | свойство |
opaqueBackground:Object
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет, является ли экранный объект непрозрачным с определенным цветом фона. Прозрачное растровое изображение содержит данные альфа-канала и рисуется прозрачным. Непрозрачное растровое изображение не имеет альфа-канала (и визуализируется быстрее, чем прозрачное изображение). Если растровое изображение непрозрачное, требуется задать для него собственный цвет фона.
Если задать численное значение, поверхность будет непрозрачной, а RGB-цвет фона будет соответствовать заданному числу. Если оставить значение по умолчанию null
, у экранного объекта будет прозрачный фон.
Свойство opaqueBackground
предназначено, главным образом, для использования вместе со свойством cacheAsBitmap
с целью оптимизации визуализации. Для экранных объектов со свойством cacheAsBitmap
в значении true настройка свойства opaqueBackground
может повысить производительность.
Непрозрачная область фона не сопоставляется при вызове метода hitTestPoint()
с параметром shapeFlag
в значении true
.
Непрозрачная область фона не реагирует на события мыши.
public function get opaqueBackground():Object
public function set opaqueBackground(value:Object):void
См. также
opaqueBackground
значение 0xFF0000 (красный).
import flash.display.Shape; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.opaqueBackground = 0xFF0000; addChild(circle);
parent | свойство |
parent:DisplayObjectContainer
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает объект DisplayObjectContainer, содержащий данный экранный объект. Используйте свойство parent
, чтобы задать относительный путь к экранным объектам, находящиеся на более высоких уровнях иерархии списка отображения, чем текущий объект.
Свойство parent
можно использовать для перемещения объекта вверх на несколько уровней в списке отображения, как показано ниже.
this.parent.parent.alpha = 20;
public function get parent():DisplayObjectContainer
SecurityError — Данный дочерний экранный объект принадлежит изолированной программной среде, к которой нет доступа. Чтобы избежать такой ситуации, родительский ролик должен вызвать метод Security.allowDomain() .
|
parent
отражает иерархию списка отображения.
import flash.display.Sprite; var sprite1:Sprite = new Sprite(); sprite1.name = "sprite1"; var sprite2:Sprite = new Sprite(); sprite2.name = "sprite2"; var sprite3:Sprite = new Sprite(); sprite3.name = "sprite3"; sprite1.addChild(sprite2); sprite2.addChild(sprite3); trace(sprite2.parent.name); // sprite1 trace(sprite3.parent.name); // sprite2 trace(sprite3.parent.parent.name); // sprite1
root | свойство |
root:DisplayObject
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
В случае с экранным объектом в загруженном SWF-файле свойством root
является самый верхний экранный объект в части структуры дерева списка отображения, представленной этим SWF-файлом. Для объекта Bitmap, представляющего файл загруженного изображения, свойством root
является сам объект Bitmap. Для экземпляра основного класса первого загруженного SWF-файла свойством root
является сам экранный объект. Свойство root
объекта Stage является сам объект Stage. Свойств root
имеет значение null
для экранных объектов, не добавленных в список отображения, если они не добавлены в контейнер экранных объектов, не включенный в список отображения, но являющийся потомком экранного объекта верхнего уровня в загруженном SWF-файле.
Например, если создается новый объект Sprite путем вызова метода конструктора Sprite()
, его свойство root
имеет значение null
до тех пор, пока он не будет добавлен в список отображения (или в контейнер экранных объектов, не включенный в список отображения, но являющийся потомком экранного объекта верхнего уровня в SWF-файле).
Для загруженного SWF-файла, несмотря на то, что объект Loader, использованный для загрузки, может не входить в список отображения, свойством root
экранного объекта верхнего уровня этого файла является сам объект. Свойство root
объекта Loader не задается, пока он не будет добавлен в качестве потомка экранного объекта, для которого уже задано свойство root
.
public function get root():DisplayObject
root
объекта Stage, незагруженного экранного объекта (Loader) (до и после добавления в список отображения) и загруженного объекта (Bitmap).
import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; trace(stage.root); // [object Stage] var ldr:Loader = new Loader(); trace (ldr.root); // null addChild(ldr); trace (ldr.root); // [object ...] var urlReq:URLRequest = new URLRequest("example.jpg"); ldr.load(urlReq); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); function loaded(event:Event):void { trace(ldr.content.root); // [object Bitmap] }
rotation | свойство |
rotation:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает поворот экземпляра DisplayObject относительно его исходной ориентации (в градусах). Значения от 0 до 180 представляют поворот по часовой стрелке. Значения от 0 до -180 представляют поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения. Например, инструкция my_video.rotation = 450
равносильна my_video.rotation = 90
.
public function get rotation():Number
public function set rotation(value:Number):void
import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(-50, -50, 100, 100); square.x = 150; square.y = 150; addChild(square); square.addEventListener(MouseEvent.CLICK, rotate); function rotate(event:MouseEvent):void { square.rotation += 15; }
rotationX | свойство |
rotationX:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Обозначает поворот в градусах по оси x экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. Значения от 0 до 180 представляют поворот по часовой стрелке. Значения от 0 до -180 представляют поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.
flash10 function get rotationX():Number
flash10 function set rotationX(value:Number):void
rotationX
и rotationY
. Точка регистрации первого эллипса находится в центре. Он вращается вокруг своей оси. Второй эллипс вращается вокруг внешней точки. package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.display.Graphics; import flash.events.TimerEvent; import flash.utils.Timer; public class RotationExample1 extends MovieClip { private var ellipse:Shape = new Shape(); private var speed:int = 10; private var ellipse1:Shape; private var ellipse2:Shape; public function RotationExample1():void { ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); this.addChild(ellipse1); this.addChild(ellipse2); var t:Timer = new Timer(50); t.addEventListener(TimerEvent.TIMER, timerHandler); t.start(); } private function drawEllipse(x1, y1, x2, y2):Shape { var e:Shape = new Shape(); e.graphics.beginFill(0xFF0000); e.graphics.lineStyle(2); e.graphics.drawEllipse(x1, y1, 100, 80); e.graphics.endFill(); e.x = x2; e.y = y2; e.z = 1; return e; } private function timerHandler(event:TimerEvent):void { ellipse1.rotationY += speed; ellipse1.rotationX -= speed; ellipse2.rotationY += speed; ellipse2.rotationX -= speed; } } }
rotationY | свойство |
rotationY:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Обозначает поворот в градусах по оси у экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. Значения от 0 до 180 представляют поворот по часовой стрелке. Значения от 0 до -180 представляют поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.
flash10 function get rotationY():Number
flash10 function set rotationY(value:Number):void
rotationX
и rotationY
. Точка регистрации первого эллипса находится в центре. Он вращается вокруг своей оси. Второй эллипс вращается вокруг внешней точки. package { import flash.display.MovieClip; import flash.display.Shape; import flash.geom.*; import flash.display.Graphics; import flash.events.TimerEvent; import flash.utils.Timer; public class RotationExample1 extends MovieClip { private var ellipse:Shape = new Shape(); private var speed:int = 10; private var ellipse1:Shape; private var ellipse2:Shape; public function RotationExample1():void { ellipse1 = drawEllipse(-50, -40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); ellipse2 = drawEllipse(30, 40, (this.stage.stageWidth / 2), (this.stage.stageHeight / 2)); this.addChild(ellipse1); this.addChild(ellipse2); var t:Timer = new Timer(50); t.addEventListener(TimerEvent.TIMER, timerHandler); t.start(); } private function drawEllipse(x1, y1, x2, y2):Shape { var e:Shape = new Shape(); e.graphics.beginFill(0xFF0000); e.graphics.lineStyle(2); e.graphics.drawEllipse(x1, y1, 100, 80); e.graphics.endFill(); e.x = x2; e.y = y2; e.z = 1; return e; } private function timerHandler(event:TimerEvent):void { ellipse1.rotationY += speed; ellipse1.rotationX -= speed; ellipse2.rotationY += speed; ellipse2.rotationX -= speed; } } }
rotationZ | свойство |
rotationZ:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Обозначает поворот в градусах по оси z экземпляра DisplayObject относительно исходной ориентации по трехмерному родительскому контейнеру. Значения от 0 до 180 представляют поворот по часовой стрелке. Значения от 0 до -180 представляют поворот против часовой стрелки. Значения за пределами этого диапазона, добавляются или вычитаются из 360 для получения допустимого значения.
flash10 function get rotationZ():Number
flash10 function set rotationZ(value:Number):void
scale9Grid | свойство |
scale9Grid:Rectangle
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Текущая активная сетка масштабирования. Если значение — null
, весь экранный объект масштабируется нормально при применении любых преобразований масштаба.
При определении свойства scale9Grid
экранный объект разбивается на сетку с девятью областями на основе прямоугольника scale9Grid
, определяющего центральную область сетки. Восемь остальных областей сетки:
Восемь областей за пределами центра (определенного прямоугольником) можно рассматривать как рамку фотографии, к которой при масштабировании применяются особые правила.
При масштабировании экранного объекта с заданным свойством scale9Grid
текст и градиенты масштабируются в обычном порядке, однако к остальным типам объектов применяются следующие правила.
При повороте экранного объекта последующее масштабирование выполняется в обычном режиме (и свойство scale9Grid
игнорируется).
В качестве примера рассмотрим следующий экранный объект и прямоугольник, примененный в качестве его свойства scale9Grid
![]() Экранный объект. | ![]() Красный прямоугольник показывает |
Когда экранный объект масштабируется или растягивается, объекты в пределах прямоугольника масштабируются как обычно, а объекты за его пределами масштабируются согласно правилам scale9Grid
.
Масштабируется до 75% | ![]() |
Масштабируется до 50% | ![]() |
Масштабируется до 25% | ![]() |
Вытягивается по горизонтали до 150% | ![]() |
Общее правило задания scale9Grid
: необходимо задать экранный объект для использования в качестве компонента, краевые области которого сохраняют одинаковую ширину при масштабировании.
public function get scale9Grid():Rectangle
public function set scale9Grid(value:Rectangle):void
ArgumentError — Если методу передается недопустимый аргумент.
|
См. также
graphics
которого отрисовывается прямоугольник. Прямоугольник имеет границу шириной 20 пикселов и заполнен градиентом. Событие timer вызывает функцию scale()
, которая масштабирует объект Shape путем корректировки свойств scaleX
и scaleY
. Применение scale9Grid
к объекту Shape предотвращает масштабирование линии границы прямоугольника — масштабируется только заливка градиентом.
import flash.display.Shape; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.InterpolationMethod; import flash.geom.Matrix; import flash.geom.Rectangle; import flash.utils.Timer; import flash.events.TimerEvent; var square:Shape = new Shape(); square.graphics.lineStyle(20, 0xFFCC00); var gradientMatrix:Matrix = new Matrix(); gradientMatrix.createGradientBox(15, 15, Math.PI, 10, 10); square.graphics.beginGradientFill(GradientType.RADIAL, [0xffff00, 0x0000ff], [100, 100], [0, 0xFF], gradientMatrix, SpreadMethod.REFLECT, InterpolationMethod.RGB, 0.9); square.graphics.drawRect(0, 0, 100, 100); var grid:Rectangle = new Rectangle(20, 20, 60, 60); square.scale9Grid = grid ; addChild(square); var tim:Timer = new Timer(100); tim.start(); tim.addEventListener(TimerEvent.TIMER, scale); var scaleFactor:Number = 1.01; function scale(event:TimerEvent):void { square.scaleX *= scaleFactor; square.scaleY *= scaleFactor; if (square.scaleX > 2.0) { scaleFactor = 0.99; } if (square.scaleX < 1.0) { scaleFactor = 1.01; } }
scaleX | свойство |
scaleX:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает горизонтальное масштабирование объекта от точки регистрации (в процентах). Точка регистрации по умолчанию — (0, 0). 1,0 равняется масштабу 100%.
Масштабирование локальной системы координат изменяет значения свойств x
и y
, определяемые в целых пикселах.
public function get scaleX():Number
public function set scaleX(value:Number):void
graphics
которого отрисовывается прямоугольник. При щелчке пользователя спрайт масштабируется на 10%.
import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleY | свойство |
scaleY:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает вертикальное масштабирование объекта от точки регистрации (в процентах). Точка регистрации по умолчанию — (0, 0). 1,0 равняется масштабу 100%.
Масштабирование локальной системы координат изменяет значения свойств x
и y
, определяемые в целых пикселах.
public function get scaleY():Number
public function set scaleY(value:Number):void
graphics
которого отрисовывается прямоугольник. При щелчке пользователя спрайт масштабируется на 10%.
import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, scale); function scale(event:MouseEvent):void { square.scaleX *= 1.10; square.scaleY *= 1.10; }
scaleZ | свойство |
scaleZ:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает масштабирование глубины объекта (в процентах) относительно точки регистрации этого объекта. Точка регистрации по умолчанию — (0, 0). 1,0 равняется масштабу 100%.
Масштабирование локальной системы координат изменяет значения свойств x
, y
и z
, определяемые в целых пикселах.
flash10 function get scaleZ():Number
flash10 function set scaleZ(value:Number):void
См. также
scrollRect | свойство |
scrollRect:Rectangle
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Прямоугольная область прокрутки экранного объекта. Экранный объект обрезается до размера, определенного прямоугольником, и прокручивается в его границах при изменении свойств x
и y
объекта scrollRect
.
Свойства объекта scrollRect
объекта Rectangle используют координатную плоскость экранного объекта и масштабируются просто как общий экранный объект. Углы обрезанного окна на экранном объекте прокрутки являются исходной точкой экранного объекта (0,0) и точкой, определенной шириной и высотой прямоугольника. Они не центрируются по исходной точке, а используют ее для определения верхнего левого угла области. Прокручиваемый экранный объект всегда прокручивается прибавлениями по целым пикселам.
Можно прокручивать объект влево и вправо, настроив свойство x
для scrollRect
объекта Rectangle. Чтобы прокручивать объект вверх и вниз, нужно настроить свойство у
для scrollRect
объекта Rectangle. Если экранный объект, повернутый на 90°, прокручивается влево и вправо, на самом деле экранный объект прокручивается вверх и вниз.
public function get scrollRect():Rectangle
public function set scrollRect(value:Rectangle):void
См. также
scrollRect
задает область прокрутки экранного объекта circle
. При щелчке по объекту circle
метод обработчика событий clicked()
корректирует свойство y
свойства scrollRect
объекта circle
, в результате чего осуществляется прокрутка вниз.import flash.display.Sprite; import flash.geom.Rectangle; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(200, 200, 200); circle.scrollRect = new Rectangle(0, 0, 200, 200); addChild(circle); circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { var rect:Rectangle = event.target.scrollRect; rect.y -= 5; event.target.scrollRect = rect; }
stage | свойство |
stage:Stage
[только для чтения] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Класс Stage экранного объекта. Приложение Flash имеет только один объект Stage. Например, можно создать и загрузить в список отображения несколько экранных объектов, и для каждого из них свойство stage
будет ссылаться на один и тот же объект Stage (даже если экранный объект принадлежит загруженному SWF-файлу).
Если экранный объект не добавлен в список отображения, его свойство stage
имеет значение null
.
public function get stage():Stage
width
объекта Stage для размещения текстовых полей.
import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.x = 10; addChild(tf1); tf1.width = tf1.stage.stageWidth / 2 - 10; var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.x = tf1.x + tf1.width + 5; addChild(tf2); tf2.width = tf2.stage.stageWidth / 2 - 10; trace(stage.stageWidth);
transform | свойство |
transform:Transform
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Объект со свойствами, относящимися к матрице, преобразованию цвета и пиксельным границам экранного объекта. Конкретные свойства (matrix, colorTransform и три свойства только для чтения (concatenatedMatrix
, concatenatedColorTransform
и pixelBounds
)) описываются в разделе, посвященном классу Transform.
Каждое из свойств объекта transform представляет собой объект. Это очень важно, так как единственным способом задать новые значения для объектов matrix или colorTransform является создание нового объекта и его копирование в свойство transform.matrix или transform.colorTransform.
Например, чтобы увеличить значение tx
матрицы экранного объекта, необходимо скопировать весь объект matrix, а затем копировать новый объект в свойство matrix объекта transform.
var myMatrix:Object = myDisplayObject.transform.matrix;
myMatrix.tx += 10;
myDisplayObject.transform.matrix = myMatrix;
Свойство tx
нельзя задавать напрямую. Следующий код не действует на myDisplayObject
.
myDisplayObject.transform.matrix.tx += 10;
Также можно копировать весь объект transform и назначить его свойству transform другого экранного объекта. Например, следующий код копирует весь объект transform object из myOldDisplayObj
в myNewDisplayObj
.
myNewDisplayObj.transform = myOldDisplayObj.transform;
Полученный экранный объект, myNewDisplayObj
, теперь имеет те же значения для матрицы, преобразования цвета и пиксельных границ, что и старый экранный объект, myOldDisplayObj
.
public function get transform():Transform
public function set transform(value:Transform):void
См. также
square
. Когда пользователь щелкает спрайт, метод transformer()
корректирует свойства colorTransform
и matrix
свойства transform
для спрайта.
import flash.display.Sprite; import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Transform; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.lineStyle(20, 0xFF2200); square.graphics.beginFill(0x0000DD); square.graphics.drawRect(0, 0, 100, 100); addChild(square); var resultColorTransform:ColorTransform = new ColorTransform(); resultColorTransform.alphaMultiplier = 0.5; resultColorTransform.redOffset = 155; resultColorTransform.greenMultiplier = 0.5; var skewMatrix:Matrix = new Matrix(1, 1, 0, 1); square.addEventListener(MouseEvent.CLICK, transformer); function transformer(event:MouseEvent):void { var transformation:Transform = square.transform; var tempMatrix:Matrix = square.transform.matrix; tempMatrix.concat(skewMatrix); square.transform.colorTransform = resultColorTransform; square.transform.matrix = tempMatrix; }
visible | свойство |
visible:Boolean
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Определяет видимость экранного объекта. Невидимые экранные объекты отключаются. Например, если visible=false
для экземпляра InteractiveObject, то он не реагирует на щелчки мыши.
public function get visible():Boolean
public function set visible(value:Boolean):void
visible
, которая периодически изменяет свойство экранного объекта, в результате чего создается эффект мигания.
import flash.text.TextField; import flash.utils.Timer; import flash.events.TimerEvent; var tf:TextField = new TextField(); tf.text = "Hello."; addChild(tf); var tim:Timer = new Timer(250); tim.start(); tim.addEventListener(TimerEvent.TIMER, blinker); function blinker(event:TimerEvent):void { tf.visible = !tf.visible; }
width | свойство |
width:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает ширину экранного объекта в пикселах. Ширина вычисляется на основе границ содержимого экранного объекта. Когда задается свойство width
, соответствующим образом изменяется и свойство scaleX
, как показано в следующем коде.
var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;
За исключением объектов TextField и Video, экранные объекты без содержимого (например, пустой спрайт), имеют ширину 0, даже если задать свойству width
другое значение.
public function get width():Number
public function set width(value:Number):void
square
. Когда пользователь щелкает спрайт, метод widen()
увеличивает значение его свойства width
.
import flash.display.Sprite; import flash.events.MouseEvent; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFF0000); square.graphics.drawRect(0, 0, 100, 100); addChild(square); square.addEventListener(MouseEvent.CLICK, widen); function widen(event:MouseEvent):void { square.width += 10; }
x | свойство |
x:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает координату x экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. Если объект включен в DisplayObjectContainer с преобразованиями, то он находится в локальной системе координат содержащего его DisplayObjectContainer. Таким образом, если объект DisplayObjectContainer повернут на 90° по часовой стрелке, его потомки наследуют систему координат, повернутую на 90° по часовой стрелке. Координаты объекта определяются относительно положения точки регистрации.
public function get x():Number
public function set x(value:Number):void
circle
. Объект Timer используется для изменения свойства x
спрайта через каждые 50 миллисекунд.
import flash.display.Sprite; import flash.utils.Timer; import flash.events.TimerEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFF0000); circle.graphics.drawCircle(100, 100, 100); addChild(circle); var tim:Timer = new Timer(50); tim.start(); tim.addEventListener(TimerEvent.TIMER, bounce); var xInc:Number = 2; function bounce(event:TimerEvent):void { circle.x += xInc; if (circle.x > circle.width) { xInc = -2; } if (circle.x < 0) { xInc = 2; } }
y | свойство |
y:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Указывает координату y экземпляра DisplayObject, связанную с локальными координатами родительского DisplayObjectContainer. Если объект включен в DisplayObjectContainer с преобразованиями, то он находится в локальной системе координат содержащего его DisplayObjectContainer. Таким образом, если объект DisplayObjectContainer повернут на 90° по часовой стрелке, его потомки наследуют систему координат, повернутую на 90° по часовой стрелке. Координаты объекта определяются относительно положения точки регистрации.
public function get y():Number
public function set y(value:Number):void
height
каждого из них на основе их свойства textHeight
; также путем задания свойства y
определяется положение второго текстового поля.
import flash.text.TextField; var tf1:TextField = new TextField(); tf1.text = "Text Field 1"; tf1.border = true; tf1.wordWrap = true; tf1.width = 40; tf1.height = tf1.textHeight + 5; addChild(tf1); var tf2:TextField = new TextField(); tf2.text = "Text Field 2"; tf2.border = true; tf2.wordWrap = true; tf2.width = 40; tf2.height = tf2.textHeight + 5; tf2.y = tf1.y + tf1.height + 5; addChild(tf2);
z | свойство |
z:Number
[чтение и запись] Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Указывает положение по оси z экземпляра DisplayObject относительно трехмерного родительского контейнера. Свойство z предназначено для работы с трехмерными системами координат, а не с экранными или пиксельными координатами.
При установке свойства z
экранного объекта на значение, отличное от значения по умолчанию, равного 0
, автоматически создается соответствующий объект Matrix3D. для регулирования положения и ориентации экранного объекта в трехмерном пространстве. При работе с осью z существующее поведение свойств х и у изменяется с экранных или пиксельных координат на положения относительно трехмерного родительского контейнера.
Например, потомок объекта _root
в положении x = 100, y = 100, z = 200 не отрисовывается в пиксельном положении (100,100). Потомок отрисовывается в месте, определенном путем вычисления трехмерной проекции. Вычисление производится следующим образом:
(x*cameraFocalLength/cameraRelativeZPosition, y*cameraFocalLength/cameraRelativeZPosition)
flash10 function get z():Number
flash10 function set z(value:Number):void
См. также
z
) по направлению к точке схода. Один эллипс двигается быстрее другого. package { import flash.display.MovieClip; import flash.display.Shape; import flash.display.Graphics; import flash.events.Event; import flash.geom.*; public class ZAxisExample1 extends MovieClip { private var ellipse1Back:int = 1; private var ellipse2Back:int = 1; private var depth:int = 1000; public function ZAxisExample1():void { var ellipse1 = drawEllipse((this.stage.stageWidth / 2) - 100, (this.stage.stageHeight / 2), 100, 80, 10); var ellipse2 = drawEllipse((this.stage.stageWidth / 2) + 100, (this.stage.stageHeight / 2), 100, 80, 300); this.addChild(ellipse1); this.addChild(ellipse2); ellipse1.addEventListener(Event.ENTER_FRAME, ellipse1FrameHandler); ellipse2.addEventListener(Event.ENTER_FRAME, ellipse2FrameHandler); } private function drawEllipse(x:Number, y:Number, w:Number, h:Number, z:Number):Shape { var s:Shape = new Shape(); s.z = z; s.graphics.beginFill(0xFF0000); s.graphics.lineStyle(2); s.graphics.drawEllipse(x, y, w, h); s.graphics.endFill(); return s; } private function ellipse1FrameHandler(e:Event):void { ellipse1Back = setDepth(e, ellipse1Back); e.currentTarget.z += ellipse1Back * 10; } private function ellipse2FrameHandler(e:Event):void { ellipse2Back = setDepth(e, ellipse2Back); e.currentTarget.z += ellipse2Back * 20; } private function setDepth(e:Event, d:int):int { if(e.currentTarget.z > depth) { e.currentTarget.z = depth; d = -1; }else if (e.currentTarget.z < 0) { e.currentTarget.z = 0; d = 1; } return d; } } }
dynamicNewFunc1 | () | метод |
getBounds | () | метод |
public function getBounds(targetCoordinateSpace:DisplayObject):Rectangle
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает прямоугольник, определяющий область экранного объекта, которая относится к системе координат объекта targetCoordinateSpace
. На примере следующего кода рассмотрим, как возвращаемый прямоугольник может варьироваться в зависимости от передаваемого методу параметра targetCoordinateSpace
.
var container:Sprite = new Sprite(); container.x = 100; container.y = 100; this.addChild(container); var contents:Shape = new Shape(); contents.graphics.drawCircle(0,0,100); container.addChild(contents); trace(contents.getBounds(container)); // (x=-100, y=-100, w=200, h=200) trace(contents.getBounds(this)); // (x=0, y=0, w=200, h=200)
Примечание. Используйте методы localToGlobal()
и globalToLocal()
для преобразования локальных координат экранного объекта в координаты экрана и наоборот.
Метод getBounds()
похож на методgetRect()
, однако прямоугольник, возвращаемый методом getBounds()
, включает все штрихи на фигурах, а возвращаемый методом getRect()
— нет. Пример см. в описании метода getRect()
.
Параметры
targetCoordinateSpace:DisplayObject — Экранный объект, определяющий используемую систему координат
|
Rectangle — Прямоугольник, определяющий область экранного объекта относительно системы координат объекта targetCoordinateSpace .
|
См. также
getDynamicZ | () | метод |
getRect | () | метод |
public function getRect(targetCoordinateSpace:DisplayObject):Rectangle
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Возвращает прямоугольник, определяющий границу экранного объекта по системе координат, заданной параметром targetCoordinateSpace
, за исключением линий фигур. Значения, возвращаемые методом getRect()
, равны или меньше возвращаемых методом getBounds()
.
Примечание. Используйте методы localToGlobal()
и globalToLocal()
для преобразования локальных координат экранного объекта в координаты рабочей области и наоборот.
Параметры
targetCoordinateSpace:DisplayObject — Экранный объект, определяющий используемую систему координат
|
Rectangle — Прямоугольник, определяющий область экранного объекта относительно системы координат объекта targetCoordinateSpace .
|
См. также
getBounds()
возвращает прямоугольник большего размера, чем метод getRect()
, потому что штрихи занимают дополнительное пространство. В данном случае спрайт triangle
содержит дополнительные штрихи из-за параметров width
и jointStyle
метода lineStyle()
. Вывод метода trace()
(в двух последних строках) показывает различия между прямоугольниками getRect()
и getBounds()
.import flash.display.CapsStyle; import flash.display.JointStyle; import flash.display.LineScaleMode; import flash.display.Sprite; import flash.geom.Rectangle; var triangle:Sprite = new Sprite(); var color:uint = 0xFF0044; var width:Number = 20; var alpha:Number = 1.0; var pixelHinting:Boolean = true; var scaleMode:String = LineScaleMode.NORMAL; var caps:String = CapsStyle.SQUARE; var joints:String = JointStyle.MITER; triangle.graphics.lineStyle(width, color, alpha, pixelHinting, scaleMode, caps, joints); var triangleSide:Number = 100; triangle.graphics.moveTo(0, 0); triangle.graphics.lineTo(0, triangleSide); triangle.graphics.lineTo(triangleSide, triangleSide); triangle.graphics.lineTo(0, 0); addChild(triangle); trace(triangle.getBounds(this)); // (x=-10, y=-24.1, w=134.10000000000002, h=134.1) trace(triangle.getRect(this)); // (x=0, y=0, w=100, h=100)
globalToLocal | () | метод |
public function globalToLocal(point:Point):Point
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Преобразует объект Point
из координат рабочей области (глобальных) в координаты экранного объекта (локальные).
Чтобы воспользоваться этим методом, сначала нужно создать экземпляр класса Point. Присвоенные вами значения x и y представляют глобальные координаты, так как они указаны относительно исходной точки (0, 0) основной области отображения. Затем экземпляр Point следует передать в качестве параметра методу globalToLocal()
. Этот метод возвращает новый объект Point со значениями x и y, указанными относительно исходной точки экранного объекта, а не рабочей области.
Параметры
point:Point — Объект, созданный с использованием класса Point. Объект Point задает координаты x и y в качестве свойств.
|
Point — Объект Point с координатами относительно экранного объекта.
|
См. также
hitTestPoint()
, в качестве параметров которого используются разные точки. Метод globalToLocal()
переводит точку из координатной плоскости рабочей области в координатную плоскость фигуры.
import flash.display.Shape; import flash.geom.Point; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.x = 10; addChild(circle); var point1:Point = new Point(0, 0); trace(circle.hitTestPoint(point1.x, point1.y, true)); // false trace(circle.hitTestPoint(point1.x, point1.y, false)); // false trace(circle.globalToLocal(point1)); // [x=-10, y=0] var point2:Point = new Point(10, 1); trace(circle.hitTestPoint(point2.x, point2.y, true)); // false trace(circle.hitTestPoint(point2.x, point2.y, false)); // true trace(circle.globalToLocal(point2)); // [x=0, y=1] var point3:Point = new Point(30, 20); trace(circle.hitTestPoint(point3.x, point3.y, true)); // true trace(circle.hitTestPoint(point3.x, point3.y, false)); // true trace(circle.globalToLocal(point3)); // [x=20, y=20]
globalToLocal3D | () | метод |
flash10 function globalToLocal3D(point:Point):Vector3D
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Преобразует двумерный объект Point из координат рабочей области (глобальных) в координаты экранного трехмерного объекта (локальные).
Чтобы воспользоваться этим методом, сначала нужно создать экземпляр класса Point. Присвоенные объекту Point значения x и y представляют глобальные координаты, так как они указаны относительно исходной точки (0, 0) основной области отображения. Затем передайте объект Point методу globalToLocal3D()
в виде параметра point
. Данный метод возвращает трехмерные координаты в виде объекта Vector3D, содержащего значения x
, y
и z
относительно исходной точки трехмерного экранного объекта.
Параметры
point:Point — Двухмерный объект Point, представляющий глобальные координаты x и y.
|
Vector3D — Объект Vector3D с координатами относительно трехмерного экранного объекта.
|
hitTestObject | () | метод |
public function hitTestObject(obj:DisplayObject):Boolean
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Оценивает экранный объект, чтобы определить, перекрывает ли он экранный объект obj
или пересекается с ним.
Параметры
obj:DisplayObject — Экранный объект для сравнения.
|
Boolean — Значение — true , если есть пересечение с экранным объектом, если же нет — false .
|
hitTestObject()
.
import flash.display.Shape; var circle1:Shape = new Shape(); circle1.graphics.beginFill(0x0000FF); circle1.graphics.drawCircle(40, 40, 40); addChild(circle1); var circle2:Shape = new Shape(); circle2.graphics.beginFill(0x00FF00); circle2.graphics.drawCircle(40, 40, 40); circle2.x = 50; addChild(circle2); var circle3:Shape = new Shape(); circle3.graphics.beginFill(0xFF0000); circle3.graphics.drawCircle(40, 40, 40); circle3.x = 100; circle3.y = 67; addChild(circle3); trace(circle1.hitTestObject(circle2)); // true trace(circle1.hitTestObject(circle3)); // true trace(circle2.hitTestObject(circle3)); // true
hitTestPoint | () | метод |
public function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Вычисляет экранный объект, чтобы определить, перекрывает ли он точку, заданную координатами x
и y
, или пересекает ее. Параметры x
и y
задают точку в координатной плоскости рабочей области, а не контейнера экранных объектов, содержащего объект (если контейнером не является сама рабочая область).
Параметры
x:Number — Координата x, сравниваемая с данным объектом.
| |
y:Number — Координата у, сравниваемая с данным объектом.
| |
shapeFlag:Boolean (default = false ) — Указывает, следует ли выполнять тестирование по фактическим пикселам объекта (true ) или по рамке (false ).
|
Boolean — Значение — true , если экранный объект перекрывает заданный объект или пересекается с ним; в противном случае — false .
|
См. также
hitTestPoint()
, в качестве параметров которого используются разные точки. Метод globalToLocal()
переводит точку из координатной плоскости рабочей области в координатную плоскость фигуры.
import flash.display.Shape; import flash.geom.Point; var circle:Shape = new Shape(); circle.graphics.beginFill(0x0000FF); circle.graphics.drawCircle(40, 40, 40); circle.x = 10; addChild(circle); var point1:Point = new Point(0, 0); trace(circle.hitTestPoint(point1.x, point1.y, true)); // false trace(circle.hitTestPoint(point1.x, point1.y, false)); // false trace(circle.globalToLocal(point1)); // [x=-10, y=0] var point2:Point = new Point(10, 1); trace(circle.hitTestPoint(point2.x, point2.y, true)); // false trace(circle.hitTestPoint(point2.x, point2.y, false)); // true trace(circle.globalToLocal(point2)); // [x=0, y=1] var point3:Point = new Point(30, 20); trace(circle.hitTestPoint(point3.x, point3.y, true)); // true trace(circle.hitTestPoint(point3.x, point3.y, false)); // true trace(circle.globalToLocal(point3)); // [x=20, y=20]
local3DToGlobal | () | метод |
flash10 function local3DToGlobal(point3d:Vector3D):Point
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | Flash Player 10 |
Преобразует трехмерный объект point из координат трехмерного экранного объекта (локальных) в двухмерный объект point с координатами рабочей области (глобальными).
Например, вы можете использовать только двухмерные координаты (x,y) для рисования при помощи методов display.Graphics
. Чтобы нарисовать трехмерный объект, необходимо сопоставить трехмерные координаты экранного объекта двухмерным координатам. Сначала создайте экземпляр класса Vector3D с координатами x, y и z трехмерного экранного объекта. Затем передайте объект Vector3D методу local3DToGlobal()
в виде параметра point3d
. Метод возвращает двухмерный объект Point, который можно использовать с Graphics API для рисования трехмерного объекта.
Параметры
point3d:Vector3D — Объект Vector3D, содержащий либо трехмерный объект point, либо координаты трехмерного экранного объекта.
|
Point — Двухмерный объект point, представляющий трехмерный объект point в двухмерном пространстве.
|
display.Graphics
. Расположение экранного объекта this
смещено, поэтому точка фиксации куба находится в центре. Вектор объектов Vector3D содержит трехмерные координаты куба. Сначала рисуется верхняя грань куба, затем нижняя, затем соединяются верхние и нижние четыре угла. Перед рисованием куба его необходимо добавить в контейнер экранных объектов, чтобы использовать метод local3DToGlobal()
.
package { import flash.display.MovieClip; import flash.display.Sprite; import flash.display.Graphics; import flash.geom.*; public class Local3DToGlobalExample extends MovieClip { private var myCube:Sprite = new Sprite(); private var v8:Vector.<Vector3D> = new Vector.<Vector3D>(8); public function Local3DToGlobalExample():void { this.x = -(this.stage.stageWidth / 2); this.y = -(this.stage.stageWidth / 2); v8[0] = new Vector3D(-40,-40,-40); v8[1] = new Vector3D(40,-40,-40); v8[2] = new Vector3D(40,-40,40); v8[3] = new Vector3D(-40,-40,40); v8[4] = new Vector3D(-40,100,-40); v8[5] = new Vector3D(40,100,-40); v8[6] = new Vector3D(40,100,40); v8[7] = new Vector3D(-40,100,40); myCube.x = (this.stage.stageWidth / 2); myCube.y = (this.stage.stageWidth / 2); myCube.z = 1; addChild(myCube); Cube(); } private function Cube():void { var ps:Point = new Point(0,0); myCube.graphics.lineStyle(2,0xFF0000); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[1]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[2]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[3]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[5]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[6]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[7]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[0]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[4]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[1]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[5]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[2]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[6]); myCube.graphics.lineTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[3]); myCube.graphics.moveTo(ps.x, ps.y); ps = myCube.local3DToGlobal(v8[7]); myCube.graphics.lineTo(ps.x, ps.y); } } }
localToGlobal | () | метод |
public function localToGlobal(point:Point):Point
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Преобразует объект point
из координат экранного объекта (локальных) в координаты рабочей области (глобальные).
Этот метод позволяет преобразовать заданные координаты x и y из значений относительно исходной точки (0, 0) конкретного объекта (локальных координат) в значения относительно исходной точки рабочей области (глобальные координаты).
Чтобы воспользоваться этим методом, сначала нужно создать экземпляр класса Point. Присвоенные вами значения x и y представляют локальные координаты, так как они указаны относительно исходной точки экранного объекта.
Затем созданный экземпляр Point передается в качестве параметра методу localToGlobal()
. Этот метод возвращает новый объект Point со значениями x и y, указанными относительно исходной точки рабочей области, а не экранного объекта.
Параметры
point:Point — Имя или идентификатор точки, созданной с использованием класса Point, в качестве свойств которой заданы координаты x и y.
|
Point — Объект Point с координатами относительно рабочей области.
|
См. также
mouseX
и mouseY
спрайта представляют собой координатную плоскость экранного объекта. В этом коде используется метод localToGlobal()
для преобразования этих свойств в глобальные координаты (рабочей области).
import flash.display.Sprite; import flash.events.MouseEvent; import flash.geom.Point; var square:Sprite = new Sprite(); square.graphics.beginFill(0xFFCC00); square.graphics.drawRect(0, 0, 100, 100); square.x = 100; square.y = 200; addChild(square); square.addEventListener(MouseEvent.CLICK, traceCoordinates) function traceCoordinates(event:MouseEvent):void { var clickPoint:Point = new Point(square.mouseX, square.mouseY); trace("display object coordinates:", clickPoint); trace("stage coordinates:", square.localToGlobal(clickPoint)); }
newFunc1 | () | метод |
newFunc2 | () | метод |
added | Событие |
flash.events.Event
flash.events.Event.ADDED
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется, когда экранный объект добавляется в список отображения. Это событие запускается следующими методами: DisplayObjectContainer.addChild()
, DisplayObjectContainer.addChildAt()
.
Event.ADDED
определяет значение свойства type
добавленного
объекта события.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | true |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Экземпляр DisplayObject, добавляемый в список отображения. Свойство target не всегда является объектом из списка отображения, для которого зарегистрирован прослушиватель событий. Используйте свойство currentTarget , чтобы обратиться к объекту в списке отображения, обрабатывающему событие в данный момент. |
См. также
addedToStage | Событие |
flash.events.Event
flash.events.Event.ADDED_TO_STAGE
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Отправляется, когда экранный объект добавляется к списку отображения в рабочей области, либо непосредственно, либо путем добавления поддерева, содержащего экранный объект. Это событие запускается следующими методами: DisplayObjectContainer.addChild()
, DisplayObjectContainer.addChildAt()
.
Event.ADDED_TO_STAGE
определяет значение свойства type
объекта события addedToStage
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Экземпляр DisplayObject, добавляемый в список отображения рабочей области напрямую или путем добавления поддерева, в котором он содержится. Если экземпляр DisplayObject добавляется напрямую, перед этим событием отправляется событие added . |
См. также
enterFrame | Событие |
flash.events.Event
flash.events.Event.ENTER_FRAME
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
[многоадресное событие] Отправляется, когда точка воспроизведения переходит в новый кадр. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.
КонстантаEvent.ENTER_FRAME
определяет значение свойства type
объекта события enterFrame
.
Примечание. Это событие не имеет фазы захвата и фазы пузырей, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Любой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события ENTER_FRAME. |
exitFrame | Событие |
flash.events.Event
flash.events.Event.EXIT_FRAME
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
[многоадресное событие] Отправляется, когда точка воспроизведения покидает текущий кадр. Все сценарии кадров выполнены. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.
Определяет значение свойстваtype
объекта события exitFrame
.
Примечание. Это событие не имеет фазы захвата и фазы пузырей, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Любой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события enterFrame . |
frameConstructed | Событие |
flash.events.Event
flash.events.Event.FRAME_CONSTRUCTED
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
[многоадресное событие] Отправляется после завершения работы конструкторов экранных объектов кадра до выполнения сценариев кадра. Если точка воспроизведения не перемещается или если используется только один кадр, это событие отправляется непрерывно в соответствии с частотой кадров. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.
Задает значение свойстваtype
для объекта события frameConstructed
.
Примечание. Это событие не имеет фазы захвата и фазы пузырей, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Любой экземпляр DisplayObject, для которого зарегистрирован прослушиватель события frameConstructed . |
removed | Событие |
flash.events.Event
flash.events.Event.REMOVED
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Отправляется перед удалением экранного объекта из списка отображения. Это событие генерируют два метода класса 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
flash.events.Event.REMOVED_FROM_STAGE
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9.0.28.0 |
Отправляется перед удалением экранного объекта из списка отображения, либо непосредственно, либо путем удаления поддерева, содержащего экранный объект. Это событие генерируют два метода класса DisplayObjectContainer: removeChild()
и removeChildAt()
.
Следующие методы объекта DisplayObjectContainer также генерируют это событие, если один объект должен быть удален с целью освобождения места для нового: addChild()
, addChildAt()
и setChildIndex()
.
Event.REMOVED_FROM_STAGE
определяет значение свойства type
объекта события removedFromStage
.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
bubbles | false |
cancelable | false ; нет поведения по умолчанию для отмены. |
currentTarget | Объект, активно обрабатывающий объект Event с помощью прослушивателя событий. |
target | Экземпляр DisplayObject, удаляемый из списка отображения рабочей области напрямую или путем удаления поддерева, в котором он содержится. Если экземпляр DisplayObject добавляется напрямую, перед этим событием отправляется событие removed . |
render | Событие |
flash.events.Event
flash.events.Event.RENDER
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
[многоадресное событие] Отправляется перед обновлением и визуализацией списка отображения. Это событие дает последнюю возможность объектам, прослушивающим данное событие, внести изменения перед визуализацией списка отображения. Проигрыватель Flash Player по умолчанию воспроизводит список отображения. Необходимо вызывать метод invalidate()
объекта Stage каждый раз, когда требуется, чтобы Flash Player отправил событие render
. События render
отправляются объекту только при условии взаимного доверия между ним и объектом, вызвавшим метод Stage.invalidate()
. Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события.
Примечание. Это событие не отправляется, если окно Flash Player не выполняет визуализацию. Это происходит, когда окно проигрывателя свернуто или скрыто.
КонстантаEvent.RENDER
определяет значение свойства type
объекта события render
.
Примечание. Это событие не имеет фазы захвата и фазы пузырей, поэтому отправляется непосредственно целевому элементу независимо от того, находится он в списке отображения или нет.
Данное событие имеет следующие свойства.
Свойство | Значение |
---|---|
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); } }