Главная / Action Script 3
Пакетflash.geom
Классpublic class Transform
НаследованиеTransform Inheritance Object

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

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

Для применения преобразований цвета: создайте объект ColorTransform, задайте настройки цвета, используя методы и свойства объекта, затем назначьте свойство colorTransformation свойства transform экранного объекта новому объекту ColorTransformation.

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

Для применения трехмерных преобразований: начните с создания трехмерного экранного объекта. Трехмерный экранный объект имеет значение свойства z, отличное от нуля. Создавать объект Matrix3D не требуется. Объект Matrix3D создается автоматически для всех трехмерных объектов, когда вы присваиваете значение z экранному объекту. Доступ к объекту Matrix3D экранного объекта можно получить через свойство transform экранного объекта. При помощи методов класса Matrix3D можно добавлять новые или модифицировать существующие параметры преобразования. Можно также создать пользовательский объект Matrix3D, задать элементы преобразования пользовательского объекта Matrix3D, затем назначить новый объект Matrix3D экранному объекту при помощи свойства transform.matrix.

Для модификации перспективной проекции рабочей области или корневого объекта: при помощи свойства transform.matrix корневого экранного объекта получите доступ к объекту PerspectiveProjection. Или примените к экранному объекту другие свойства перспективной проекции, задав свойства перспективной проекции для родительского объекта экранного объекта. Дочерний экранный объект унаследует новые свойства. А именно, создайте объект PerspectiveProjection и задайте его свойства, затем назначьте объект PerspectiveProjection свойству perspectiveProjection свойства transform родительского экранного объекта. Заданное преобразование проекции будет применено ко всем трехмерным дочерним элементам экранного объекта.

Так как и объект PerspectiveProjection, и объект Matrix3D выполняют перспективные преобразования, не назначайте оба эти объекта экранному объекту одновременно. Используйте объект PerspectiveProjection для изменения фокусного расстояния и центра проекции. Для расширенного управления перспективным преобразованием создайте объект перспективной проекции Matrix3D.

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

См. также

flash.display.DisplayObject.transform
flash.geom.ColorTransform
flash.geom.Matrix
flash.geom.Matrix3D
flash.geom.PerspectiveProjection


Общедоступные свойства
 СвойствоОпределено
  colorTransform : ColorTransform
Объект ColorTransform содержит значения для универсальной коррекции цветов экранного объекта.
Transform
  concatenatedColorTransform : ColorTransform
[только для чтения] Объект ColorTransform, представляющий объединенные преобразования цвета, применяемые к экранному объекту и всем его родительским объектам, вплоть до корневого уровня.
Transform
  concatenatedMatrix : Matrix
[только для чтения] Объект Matrix, представляющий объединенные матрицы преобразования экранного объекта и всех его родительских объектов, вплоть до корневого уровня.
Transform
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
  matrix : Matrix
Объект Matrix, содержащий значения, влияющие на масштабирование, поворот и перемещение экранного объекта.
Transform
  matrix3D : Matrix3D
Обеспечивает доступ к объекту Matrix3D трехмерного экранного объекта.
Transform
  perspectiveProjection : PerspectiveProjection
Обеспечивает доступ к объекту PerspectiveProjection трехмерного экранного объекта.
Transform
  pixelBounds : Rectangle
[только для чтения] Объект Rectangle, определяющий ограничительный прямоугольник экранного объекта в рабочей области.
Transform
 Inheritedprototype : Object
[статические] Ссылка на модель объекта класса или функции.
Object
Общедоступные методы
 МетодОпределено
  
Возвращает объект Matrix3D, который может преобразовать пространство заданного экранного объекта относительно пространства текущего экранного объекта.
Transform
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
colorTransformсвойство
colorTransform:ColorTransform  [чтение и запись]

Версии среды выполнения:  1.0 9

Объект ColorTransform содержит значения для универсальной коррекции цветов экранного объекта.



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

Выдает
TypeError — Объект colorTransform является нулевым при добавлении

См. также

concatenatedColorTransformсвойство 
concatenatedColorTransform:ColorTransform  [только для чтения]

Версии среды выполнения:  1.0 9

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



Реализация
    public function get concatenatedColorTransform():ColorTransform

См. также

concatenatedMatrixсвойство 
concatenatedMatrix:Matrix  [только для чтения]

Версии среды выполнения:  1.0 9

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



Реализация
    public function get concatenatedMatrix():Matrix
matrixсвойство 
matrix:Matrix  [чтение и запись]

Версии среды выполнения:  1.0 9

Объект Matrix, содержащий значения, влияющие на масштабирование, поворот и перемещение экранного объекта.



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

Выдает
TypeError — Матрица является нулевой при добавлении

См. также

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

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

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



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

См. также

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

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

Обеспечивает доступ к объекту PerspectiveProjection трехмерного экранного объекта. При помощи объекта PerspectiveProjection можно модифицировать перспективное преобразование рабочей области или назначать перспективное преобразование всем трехмерным дочерним элементам экранного объекта.

Объект PerspectiveProjection по умолчанию назначается корневому объекту на основе поля обзора и соотношения сторон (размеров) рабочей области.



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

См. также

pixelBoundsсвойство 
pixelBounds:Rectangle  [только для чтения]

Версии среды выполнения:  1.0 9

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



Реализация
    public function get pixelBounds():Rectangle
Сведения о методе
getRelativeMatrix3D()метод
public function getRelativeMatrix3D(relativeTo:DisplayObject):Matrix3D

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

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

Параметры

relativeTo:DisplayObject — Экранный объект, относительно которого осуществляется преобразование. Чтобы получить объект Matrix3D относительно рабочей области, установите этот параметр на объект root или stage. Чтобы получить матрицу экранного объекта относительно мировых координат, установите этот параметр на экранный объект, к которому было применено перспективное преобразование.

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

См. также

Примеры Как пользоваться примерами
TransformExample.as

В следующем примере класс TransformExample используется для наклона нижней стороны спрайта, заливка которого выполнена с применением градиентного шаблона. При каждом щелчке квадрата мышью в приложении выполняется преобразование спрайта путем выполнения наклона:
  1. Конструктор TransformExample() создает новый объект спрайта target.
  2. Конструктор TransformExample() вызывает метод draw(), который рисует градиентный квадрат в спрайте.
  3. Конструктор TransformExample() добавляет слушатель событий щелчка для спрайта, который обрабатывается методом clickHandler().
  4. Метод clickHandler() создает новый объект Matrix, skewMatrix, настроенный для применения наклона. Другая матрица, tempMatrix, назначается текущей матрице преобразования спрайта, а затем она комбинируется с методом skewMatrix с помощью метода concat(). Эта матрица назначается свойству transform.matrix квадратного спрайта. При каждом щелчке квадрата мышью вызывается метод clickHandler() и изменяется форма квадрата путем его наклона.
  5. Кроме того, метод clickHandler() создает новый объект ColorTransform. Для свойства redOffset нового объекта ColorTransform задается текущее значение redOffset, увеличенное на 25. Таким же образом значение свойства blueOffset уменьшается на 25. При каждом щелчке цвет спрайта изменяется.
package {
    import flash.display.Sprite;
    import flash.display.GradientType;
    import flash.geom.Matrix;
    import flash.geom.ColorTransform;
    import flash.events.MouseEvent;

    public class TransformExample extends Sprite {
        public function TransformExample() { 
            var target:Sprite = new Sprite();
            draw(target);
            addChild(target);
            target.useHandCursor = true;
            target.buttonMode = true;
            target.addEventListener(MouseEvent.CLICK, clickHandler)
        }
        public function draw(sprite:Sprite):void {
            var red:uint = 0xFF0000;
            var green:uint = 0x00FF00;
            var blue:uint = 0x0000FF;
            var size:Number = 100;
            sprite.graphics.beginGradientFill(GradientType.LINEAR, [red, blue, green], [1, 0.5, 1], [0, 200, 255]);
            sprite.graphics.drawRect(0, 0, 100, 100);
        }
        public function clickHandler(event:MouseEvent):void {
            var skewMatrix:Matrix = new Matrix();
            skewMatrix.c = 0.25;
            var tempMatrix:Matrix = this.transform.matrix;
            tempMatrix.concat(skewMatrix);
            this.transform.matrix = tempMatrix;
            
            var rOffset:Number = this.transform.colorTransform.redOffset + 25;
            var bOffset:Number = this.transform.colorTransform.blueOffset - 25;
            this.transform.colorTransform = new ColorTransform(1, 1, 1, 1, rOffset, 0, bOffset, 0);            
        }
    }
}