<?xml version="1.0"?>
<apiPackage id="flash.geom"><apiName>flash.geom</apiName><apiDetail/><apiClassifier id="flash.geom:Utils3D"><apiName>Utils3D</apiName><shortdesc> 
 В классе Utils3D содержатся статические методы, которые позволяют упростить реализацию определенных трехмерных операций матрицы.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata><asCustoms><helpid>
 </helpid></asCustoms></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiTipTexts><apiTipText>Служебный класс со статическими методами, необходимый для упрощения реализации определенных трехмерных операций. 
 
 
 </apiTipText></apiTipTexts><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc> 
 В классе Utils3D содержатся статические методы, которые позволяют упростить реализацию определенных трехмерных операций матрицы.
 
 
 </apiDesc></apiClassifierDetail><related-links><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link><link href="flash.geom.xml#Vector3D"><linktext>flash.geom.Vector3D</linktext></link><link href="flash.geom.xml#Transform"><linktext>flash.geom.Transform</linktext></link><link href="flash.geom.xml#PerspectiveProjection"><linktext>flash.geom.PerspectiveProjection</linktext></link><link href="flash.display.xml#Graphics"><linktext>flash.display.Graphics</linktext></link><link href="flash.display.xml#GraphicsTrianglePath"><linktext>flash.display.GraphicsTrianglePath</linktext></link><link href="#Vector"><linktext>Вектор</linktext></link></related-links><apiOperation id="flash.geom:Utils3D:pointTowards"><apiName>pointTowards</apiName><shortdesc>
    Интерполирует ориентацию объекта относительно положения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Измененная версия объекта Matrix3D, заданного во втором параметре. Чтобы преобразовать экранный объект с помощью метода <codeph>pointTowards()</codeph>, задайте свойство экранного объекта Matrix3D возвращенному объекту Matrix3D.
    
    </apiDesc><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>percent</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Число от 0 до 1, на которое объект пошагово перемещается к цели.
    
    </apiDesc></apiParam><apiParam><apiItemName>mat</apiItemName><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier><apiDesc>Свойство Matrix3D преобразованного объекта. 
    
    </apiDesc></apiParam><apiParam><apiItemName>pos</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Положение целевого объекта относительно мировых координат. Положение относительно мировых координат определяет преобразование объекта относительно мирового пространства, в котором располагаются все объекты.  
    
    </apiDesc></apiParam><apiParam><apiItemName>at</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiData>null</apiData><apiDesc>Вектор относительно объекта, определяющий место локализации экранного объекта. Положение относительно объекта определяет преобразование объекта относительно пространства объекта, собственной координатной системы объекта. По умолчанию используется значение (0,0,-1).
    
    </apiDesc></apiParam><apiParam><apiItemName>up</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiData>null</apiData><apiDesc>Вектор относительно объекта, определяющий «верх» экранного объекта. Если объект обращен лицевой стороной вниз при просмотре сверху, ось <i>+z</i> будет являться для этого объекта вектором, направленным вверх. Положение относительно объекта определяет преобразование объекта относительно пространства объекта, собственной координатной системы объекта. По умолчанию используется значение (0,-1,0).
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Интерполирует ориентацию объекта относительно положения. В методе <codeph>pointTowards()</codeph> сочетаются функции методов <codeph>Matrix3D.pointAt()</codeph> и <codeph>Matrix3D.interpolateTo()</codeph>.  
    
    <p>Метод <codeph>pointTowards()</codeph> позволяет изменить ориентацию на месте. Он разбивает свойство Matrix3D экранного объекта и заменяет элементы поворота на элементы, с помощью которых будет выполняться переход на значение в процентах относительно положения цели. Объект может пошагово перемещаться к цели, не прекращая движения в собственном направлении. При последующих вызовах метода <codeph>pointTowards()</codeph>, за которым следует метод перехода, может создаваться анимация преследования объекта или следования за движущейся целью. Сначала переместите объект на значение в процентах по направлению к цели, затем пошагово перемещайте объект вдоль оси.</p> 
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/pointAt()"><linktext>flash.geom.Matrix3D.pointAt()</linktext></link><link href="flash.geom.xml#Matrix3D/interpolateTo()"><linktext>flash.geom.Matrix3D.interpolateTo()</linktext></link><link href="flash.geom.xml#Matrix3D/interpolate()"><linktext>flash.geom.Matrix3D.interpolate()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Utils3D:projectVectors"><apiName>projectVectors</apiName><shortdesc>
    С помощью объекта проекции Matrix3D проецирует вектор трехмерных пространственных координат (verts) в вектор двумерных пространственных координат (projectedVerts).</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>m</apiItemName><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier><apiDesc>Объект проекции Matrix3D, реализующий преобразование проекции. Объект проекции Matrix3D можно создать с помощью свойства <codeph>Matrix3D.rawData</codeph>.
    </apiDesc></apiParam><apiParam><apiItemName>verts</apiItemName><apiType value="Vector$Number"/><apiDesc>Вектор чисел, в котором каждые три числа представляют координаты <i>x</i>, <i>y</i> и <i>z</i> трехмерного пространства, аналогично <codeph>Vector3D(x,y,z)</codeph>. 
    
    </apiDesc></apiParam><apiParam><apiItemName>projectedVerts</apiItemName><apiType value="Vector$Number"/><apiDesc>Вектор чисел, в котором каждые два числа представляют спроецированную двухмерную координату, аналогично <codeph>Point(x,y)</codeph>. Следует предварительно назначить вектор. Метод <codeph>projectVectors()</codeph> заполняет значения для каждой спроецированной точки.
    
    </apiDesc></apiParam><apiParam><apiItemName>uvts</apiItemName><apiType value="Vector$Number"/><apiDesc>Вектор чисел, в котором каждые три числа представляют элементы <i>u</i>, <i>v</i> и <i>t</i> данных <codeph>uvt</codeph>. <i>u</i> и <i>v</i> - это координаты текстуры для каждой спроецированной точки. Значение <i>t</i> – это значение глубины проекции, расстояние от наблюдателя до объекта Vector3D в поле обзора. Необходимо предварительно назначить вектор и указать значения <i>u</i> и <i>v</i>. Метод <codeph>projectVectors</codeph> заполняет значение <i>t</i> для каждой спроецированной точки.
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Проецирует вектор трехмерных пространственных координат в вектор двумерных пространственных координат.
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    С помощью объекта проекции Matrix3D проецирует вектор трехмерных пространственных координат (<i>verts</i>) в вектор двумерных пространственных координат (<codeph>projectedVerts</codeph>). Перед использованием спроецированного объекта вектора в качестве параметра необходимо предварительно назначить его. 
    
    <p>Метод <codeph>projectVectors()</codeph> также задает значение <i>t</i> данных <i>uvt</i>. Необходимо предварительно назначить вектор, в котором будут содержаться данные <i>uvts</i> для каждого спроецированного набора координат вектора. Также следует задать значения <i>u</i> и <i>v</i> данных <i>uvt</i>. Данные <i>uvt</i> – это вектор нормализованных координат, используемых для отображения текстуры. В координатах UV точка (0,0) – это верхняя левая точка, а точка (1,1) – нижняя правая точка растрового изображения.</p>
    
    <p>Это метод можно использовать совместно с методом <codeph>Graphics.drawTriangles()</codeph> и классом <codeph>GraphicsTrianglePath</codeph>.</p>  
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.display.xml#Graphics/drawTriangles()"><linktext>flash.display.Graphics.drawTriangles()</linktext></link><link href="flash.display.xml#GraphicsTrianglePath"><linktext>flash.display.GraphicsTrianglePath</linktext></link><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link><link href="flash.geom.xml#Utils3D/projectVector()"><linktext>projectVector()</linktext></link><link href="#Vector"><linktext>Вектор</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Utils3D:projectVector"><apiName>projectVector</apiName><shortdesc>
    С помощью объекта проекции Matrix3D выполняет проецирование объекта Vector3D из одного координатного пространства в другое.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Новый объект Vector3D с преобразованными пространственными координатами.
    
    </apiDesc><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>m</apiItemName><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier><apiDesc>Объект проекции Matrix3D, реализующий преобразование проекции. Если экранный объект содержит объект PerspectiveProjection, можно использовать метод <codeph>perspectiveProjection.toMatrix()</codeph> для создания объекта проекции Matrix3D, который применяется к нижестоящим объектам экранного объекта. Для расширенных проекций используйте свойство <codeph>matrix3D.rawData</codeph> для создания пользовательских матриц проекции. Встроенный метод Matrix3D для создания объекта проекции Matrix3D отсутствует.
    
    </apiDesc></apiParam><apiParam><apiItemName>v</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D, который проецируется в новое координатное пространство.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    С помощью объекта проекции Matrix3D выполняет проецирование объекта Vector3D из одного координатного пространства в другое. Метод <codeph>projectVector()</codeph> подобен методу <codeph>Matrix3D.transformVector()</codeph>, за исключением того, что метод <codeph>projectVector()</codeph> делит элементы <i>x</i>, <i>y</i> и <i>z</i> исходного объекта Vector3D на значение глубины проекции. Значением глубины является расстояние от наблюдателя до объекта Vector3D в поле обзора. Значением расстояния по умолчанию считается значение элемента <i>z</i>.
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/transformVector()"><linktext>flash.geom.Matrix3D.transformVector()</linktext></link><link href="flash.geom.xml#Utils3D/projectVectors()"><linktext>projectVectors()</linktext></link></related-links></apiOperation></apiClassifier><apiClassifier id="flash.geom:Vector3D"><apiName>Vector3D</apiName><shortdesc> 
 Класс Vector3D представляет точку или расположение в трехмерном пространстве с использованием декартовых координат x, y и z.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata><asCustoms><helpid>
 </helpid></asCustoms></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc> 
 Класс Vector3D представляет точку или расположение в трехмерном пространстве с использованием декартовых координат x, y и z. Как в двухмерном пространстве свойство <codeph>x</codeph> представляет горизонтальную ось, а свойство <codeph>y</codeph> – вертикальную ось. В трехмерном пространстве свойство <codeph>z</codeph> представляет глубину. Значение свойства <codeph>x</codeph> увеличивается при перемещении объекта вправо. Значение свойства <codeph>y</codeph> увеличивается при перемещении объекта вниз. Значение свойства <codeph>z</codeph> увеличивается при перемещении объекта вдаль от точки обзора. При использовании перспективной проекции и масштабирования объекта размер объекта увеличивается при приближении к экрану и уменьшается при удалении от него. Как в правосторонней трехмерной системе координат, положительная ось z направлена в противоположную от наблюдателя сторону и значение свойства <codeph>z</codeph> увеличивается при удалении объекта от наблюдателя. Исходной точкой (0,0,0) в глобальном пространстве является верхний левый угол рабочей области. 
   
 <p><adobeimage alt="Оси X, Y, Z" href="../../images/xyzAxes.jpg"/></p>
 
 <p>Класс Vector3D может также представлять направление, стрелку от исходной точки координатной системы с координатами (0,0,0) до конечной точки; или компоненты плавающей запятой цветовой модели RGB (Red, Green, Blue – красный, зеленый, синий).</p> 
 
 <p>Кватернион добавляет четвертый элемент, свойство <codeph>w</codeph>, которое предоставляет дополнительную информацию об ориентации. Например, свойство <codeph>w</codeph> может задавать угол вращения объекта Vector3D. Комбинация угла вращения и координат x, y и z может задавать ориентацию экранного объекта. Ниже представлены элементы Vector3D в виде матрицы:</p>
 
 <p><adobeimage alt="Элементы Vector3D" href="../../images/Vector3Delements.jpg"/></p>
 
 
 </apiDesc></apiClassifierDetail><related-links><link href="flash.display.xml#DisplayObject"><linktext>flash.display.DisplayObject</linktext></link><link href="flash.geom.xml#Point"><linktext>flash.geom.Point</linktext></link><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link><link href="flash.geom.xml#Utils3D"><linktext>flash.geom.Utils3D</linktext></link><link href="#Vector"><linktext>Вектор</linktext></link></related-links><apiConstructor id="flash.geom:Vector3D:Vector3D"><apiName>Vector3D</apiName><shortdesc>
     Создает экземпляр объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiConstructorDetail><apiConstructorDef><apiAccess value="public"/><apiParam><apiItemName>x</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0.</apiData><apiDesc>Первый элемент, например координата x. 
     </apiDesc></apiParam><apiParam><apiItemName>y</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0.</apiData><apiDesc>Второй элемент, например координата y. 
     </apiDesc></apiParam><apiParam><apiItemName>z</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0.</apiData><apiDesc>Третий элемент, например координата z. 
     </apiDesc></apiParam><apiParam><apiItemName>w</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0.</apiData><apiDesc>Необязательный элемент для дополнительных данных, например угол поворота. 
     
     </apiDesc></apiParam></apiConstructorDef><apiDesc>
     Создает экземпляр объекта Vector3D. Если в конструкторе параметр не указан, объект Vector3D создается с элементами (0,0,0,0).
     
     </apiDesc></apiConstructorDetail></apiConstructor><apiOperation id="flash.geom:Vector3D:add"><apiName>add</apiName><shortdesc>
    Добавляет значения элементов x, y и z текущего объекта Vector3D к значениям элементов x, y и z другого объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Объект Vector3D, получающийся в результате добавления текущего объекта Vector3D к другому объекту Vector3D.
    
    </apiDesc><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>a</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D, добавляемый к текущему объекту Vector3D.
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Добавляет текущий объект Vector3D к другому объекту для создания нового объекта Vector3D. 
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    Добавляет значения элементов x, y и z текущего объекта Vector3D к значениям элементов x, y и z другого объекта Vector3D. Метод <codeph>add()</codeph> не изменяет текущий объект Vector3D. Вместо этого он возвращает новый объект Vector3D с новыми значениями.
    
    <p>В результате сложения двух векторов получается результирующий вектор. Одним из способов визуализации результата является рисование вектора из начальной или конечной точки первого вектора до конечной или начальной точки второго вектора. Полученным в результате вектором будет являться расстояние между начальной точкой первого вектора и конечной точкой второго вектора.</p>   
    
    <p><adobeimage alt="Результирующий вектор Vector3D" href="../../images/resultantVector3D.jpg"/></p>
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Vector3D/incrementBy()"><linktext>incrementBy()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Vector3D:angleBetween"><apiName>angleBetween</apiName><shortdesc>
    Возвращает угол (в радианах) между двумя векторами.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Угол между двумя объектами Vector3D.
    
    </apiDesc><apiOperationClassifier>Number</apiOperationClassifier></apiReturn><apiParam><apiItemName>a</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Первый объект Vector3D.
    </apiDesc></apiParam><apiParam><apiItemName>b</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Второй объект Vector3D.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Возвращает угол (в радианах) между двумя векторами. Возвращаемый угол представляет собой наименьший радиан вращения первого объекта Vector3D до его выравнивания со вторым объектом Vector3D. 
    
    <p>Метод <codeph>angleBetween()</codeph> является статическим. Его можно использовать как метод класса Vector3D напрямую.</p>
    
    <p>Для перевода градусов в радианы можно использовать следующую формулу:</p> 
    
    <p><codeph>radian = Math.PI/180 ~~ degree</codeph></p>
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Vector3D:clone"><apiName>clone</apiName><shortdesc>
    Возвращает новый объект Vector3D, который является точной копией текущего объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новый объект Vector3D, который является копией текущего объекта Vector3D.
    
    </apiDesc><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
    Возвращает новый объект Vector3D, который является точной копией текущего объекта Vector3D.
    
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Vector3D:crossProduct"><apiName>crossProduct</apiName><shortdesc>
    Возвращает новый объект Vector3D, который расположен перпендикулярно (под прямым углом) к текущему и второму объекту Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новый объект Vector3D, расположенный перпендикулярно к данному объекту Vector3D и объекту Vector3D, заданному в качестве параметра.
    
    </apiDesc><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>a</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Второй объект Vector3D. 
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Возвращает новый объект Vector3D, который расположен перпендикулярно (под прямым углом) к текущему и второму объекту Vector3D. Если возвращен объект Vector3D с координатами (0,0,0), два объекта Vector3D расположены перпендикулярно друг к другу.
    
    <p><adobeimage alt="Векторное произведение" href="../../images/crossproduct.jpg"/></p>
    
    <p>Можно использовать нормализованное векторное произведение двух вершин поверхности многоугольника и нормализованного вектора камеры или точки обзора наблюдателя для получения скалярного произведения. Значение скалярного произведения определяет, будет ли поверхность трехмерного объекта невидимой.</p>
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Vector3D/dotProduct()"><linktext>dotProduct()</linktext></link><link href="flash.geom.xml#Vector3D/normalize()"><linktext>normalize()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Vector3D:decrementBy"><apiName>decrementBy</apiName><shortdesc>
    Уменьшает значения элементов x, y и z текущего объекта Vector3D на значения элементов x, y и z заданного объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>a</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D, содержащий значения, которые нужно вычесть из текущего объекта Vector3D.
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Уменьшает текущий объект Vector3D на величину другого объекта Vector3D.  
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    Уменьшает значения элементов x, y и z текущего объекта Vector3D на значения элементов x, y и z заданного объекта Vector3D. В отличие от метода <codeph>Vector3D.subtract()</codeph> метод <codeph>decrementBy()</codeph> изменяет текущий объект Vector3D и не возвращает новый объект Vector3D.
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Vector3D/subtract()"><linktext>subtract()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Vector3D:distance"><apiName>distance</apiName><shortdesc>
    Возвращает расстояние между двумя объектами Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Расстояние между двумя объектами Vector3D.
    
    </apiDesc><apiOperationClassifier>Number</apiOperationClassifier></apiReturn><apiParam><apiItemName>pt1</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D в виде первой трехмерной точки. 
    </apiDesc></apiParam><apiParam><apiItemName>pt2</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D в виде второй трехмерной точки.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Возвращает расстояние между двумя объектами Vector3D. Метод <codeph>distance()</codeph> является статическим. Его можно использовать как метод класса Vector3D напрямую для получения евклидового расстояния между двумя трехмерными точками.
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Vector3D:dotProduct"><apiName>dotProduct</apiName><shortdesc>
    Если текущий объект Vector3D и объект, заданный в качестве параметра, являются единичными вершинами, данный метод возвращает косинус угла между двумя вершинами.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Скалярная величина, которая была получена в результате скалярного произведения текущего объекта Vector3D и заданного объекта Vector3D.
    
    </apiDesc><apiOperationClassifier>Number</apiOperationClassifier></apiReturn><apiParam><apiItemName>a</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Второй объект Vector3D. 
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Возвращает скалярное произведение текущего и второго объекта Vector3D.
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    Если текущий объект Vector3D и объект, заданный в качестве параметра, являются единичными вершинами, данный метод возвращает косинус угла между двумя вершинами. Единичные вершины – это вершины с одинаковым направлением, но с одной длиной. Они удаляют длину вектора как множителя в результате. Метод <codeph>normalize()</codeph> можно использовать для преобразования вектора в единичный вектор. 
    
    <p>Метод <codeph>dotProduct()</codeph> используется для вычисления угла между двумя вершинами. Он также используется в вычислении отбора или освещения невидимой поверхности. Отбор невидимой поверхности – это процедура определения поверхностей, которые будут скрыты в точке наблюдения. Нормализованные вершины с камеры или точки наблюдения и векторное произведение вершин поверхности многоугольника можно использовать для получения скалярного произведения. Если скалярное произведение меньше нуля, то поверхность видима камере или наблюдателю. Если две единичные вершины расположены перпендикулярно друг к другу, они являются ортогональными и их скалярное произведение равно нулю. Если две вершины расположены параллельно друг к другу, скалярное произведение равно единице.</p>
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Vector3D/crossProduct()"><linktext>crossProduct()</linktext></link><link href="flash.geom.xml#Vector3D/normalize()"><linktext>normalize()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Vector3D:equals"><apiName>equals</apiName><shortdesc>
    Определяет равенство двух объектов Vector3D путем сравнения элементов x, y и z текущего объекта Vector3D и заданного объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращается значение <codeph>true</codeph>, если заданный объект Vector3D равен текущему объекту Vector3D, и значение <codeph>false</codeph>, если не равен.
    
    </apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>toCompare</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D, сравниваемый с текущим объектом Vector3D.
    </apiDesc></apiParam><apiParam><apiItemName>allFour</apiItemName><apiOperationClassifier>Boolean</apiOperationClassifier><apiData>false</apiData><apiDesc>Необязательный параметр, который определяет необходимость использования свойства <codeph>w</codeph> объектов Vector3D при сравнении.  
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Определяет равенство двух объектов Vector3D путем сравнения элементов x, y и z текущего объекта Vector3D и заданного объекта Vector3D. Если значения этих элементов одинаковые, два объекта Vector3D равны. Если для второго дополнительного параметра задано значение <codeph>true</codeph>, сравниваются все четыре элемента объектов Vector3D, включая свойство <codeph>w</codeph>. 
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Vector3D/nearEquals()"><linktext>nearEquals()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Vector3D:incrementBy"><apiName>incrementBy</apiName><shortdesc>
    Увеличивает значение элементов x, y и z текущего объекта Vector3D на значения элементов x, y и z заданного объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>a</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D, добавляемый к текущему объекту Vector3D.
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Увеличивает текущий объект Vector3D на величину другого объекта Vector3D. 
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    Увеличивает значение элементов x, y и z текущего объекта Vector3D на значения элементов x, y и z заданного объекта Vector3D. В отличие от метода <codeph>Vector3D.add()</codeph>, метод <codeph>incrementBy()</codeph> изменяет текущий объект Vector3D и не возвращает новый объект Vector3D.
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Vector3D/add()"><linktext>add()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Vector3D:nearEquals"><apiName>nearEquals</apiName><shortdesc>
    Сравнивает элементы текущего объекта Vector3D с элементами заданного объекта Vector3D для определения приблизительного равенства.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращается значение <codeph>true</codeph>, если заданный объект Vector3D приблизительно равен текущему объекту Vector3D, и значение <codeph>false</codeph>, если не равен.
    
    </apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>toCompare</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D, сравниваемый с текущим объектом Vector3D. 
    </apiDesc></apiParam><apiParam><apiItemName>tolerance</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Число, определяющее коэффициент допустимого отклонения. Если разность между значением элемента Vector3D, заданного в параметре <codeph>toCompare</codeph>, и значением текущего элемента Vector3D не превышает значение допустимого отклонения, эти два значения считаются приблизительно равными.  
    </apiDesc></apiParam><apiParam><apiItemName>allFour</apiItemName><apiOperationClassifier>Boolean</apiOperationClassifier><apiData>false</apiData><apiDesc>Необязательный параметр, который определяет необходимость использования свойства <codeph>w</codeph> объектов Vector3D при сравнении.  
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Сравнивает элементы текущего объекта Vector3D с элементами заданного объекта Vector3D для определения приблизительного равенства. Два объекта Vector3D приблизительно равны, если значение всех элементов двух вершин равны, или если результат сравнения находится в пределах допустимого отклонения. Разность между двумя элементами должна быть меньше значения, указанного в параметре <codeph>tolerance</codeph>. Если для третьего дополнительного параметра задано значение <codeph>true</codeph>, сравниваются все четыре элемента объектов Vector3D, включая свойство <codeph>w</codeph>. В противном случае при сравнении учитываются только элементы x, y и z.
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Vector3D/equals()"><linktext>equals()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Vector3D:negate"><apiName>negate</apiName><shortdesc>
    Задает обращение текущего объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
    Задает обращение текущего объекта Vector3D. Инверсный объект считается противоположным исходному объекту. Значения свойств <codeph>x</codeph>, <codeph>y</codeph> и <codeph>z</codeph> текущего объекта Vector3D меняются на значения <codeph>-x</codeph>, <codeph>-y</codeph> и <codeph>-z</codeph>. 
    
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Vector3D:normalize"><apiName>normalize</apiName><shortdesc>
    Преобразует объект Vector3D в единичный вектор делением первых трех элементов (x, y и z) на длину вектора.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Длина текущего объекта Vector3D.
    
    </apiDesc><apiOperationClassifier>Number</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
    Преобразует объект Vector3D в единичный вектор делением первых трех элементов (x, y и z) на длину вектора. Единичные вершины – это вершины, имеющие направление, но их длина равна единице. Они упрощают вычисления векторов, убирая длину в качестве множителя.
    
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Vector3D:project"><apiName>project</apiName><shortdesc>
     Делит значения свойств x, y и z текущего объекта Vector3D на значение его свойства w.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
     Делит значения свойств <codeph>x</codeph>, <codeph>y</codeph> и <codeph>z</codeph> текущего объекта Vector3D на значение его свойства <codeph>w</codeph>. 
     
     <p>Если текущий объект Vector3D является результатом умножения объекта Vector3D на объект проекции Matrix3D, в свойстве <codeph>w</codeph> может содержаться значение преобразования. Затем проецирование может быть выполнено с помощью метода <codeph>project()</codeph> путем деления элементов на значение свойства <codeph>w</codeph>. Свойство <codeph>Matrix3D.rawData</codeph> можно использовать для создания объекта проекции Matrix3D.</p>
     
     
     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Vector3D:scaleBy"><apiName>scaleBy</apiName><shortdesc>
    Масштабирует текущий объект Vector3D на скаляр (значение).</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>s</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Множитель (скалярная величина), который используется для масштабирования объекта Vector3D.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Масштабирует текущий объект Vector3D на скаляр (значение). Элементы x, y и z объекта Vector3D умножаются на скалярную величину, заданную в параметре. Например, если вектор масштабируется с коэффициентом, равным десяти, в результате получается вектор, длина которого в десять раз больше. Скалярная величина может также изменить направление вектора. При умножении вектора на отрицательное число направление вектора меняется на обратное.
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Vector3D:subtract"><apiName>subtract</apiName><shortdesc>
    Вычитает значения элементов x, y и z текущего объекта Vector3D из значений элементов x, y и z другого объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новый объект Vector3D, представляющий собой разницу текущего объекта Vector3D и заданного объекта Vector3D.
    
    </apiDesc><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>a</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D, вычитаемый из текущего объекта Vector3D.
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Вычитает текущий объект Vector3D из другого объекта Vector3D для создания нового объекта Vector3D. 
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    Вычитает значения элементов x, y и z текущего объекта Vector3D из значений элементов x, y и z другого объекта Vector3D. Метод <codeph>subtract()</codeph> не изменяет текущий объект Vector3D. Вместо этого данный метод возвращает новый объект Vector3D с новыми значениями.
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Vector3D/decrementBy()"><linktext>decrementBy()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Vector3D:toString"><apiName>toString</apiName><shortdesc>
     Возвращает строковое представление текущего объекта Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Строка, в которой содержатся значения свойств <codeph>x</codeph>, <codeph>y</codeph> и <codeph>z</codeph>.
     
     </apiDesc><apiOperationClassifier>String</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
     Возвращает строковое представление текущего объекта Vector3D. В строке содержатся значения свойств <codeph>x</codeph>, <codeph>y</codeph> и <codeph>z</codeph>.
     
     
     </apiDesc></apiOperationDetail></apiOperation><apiValue id="flash.geom:Vector3D:X_AXIS"><apiName>X_AXIS</apiName><shortdesc>
    Ось x, определенная в виде объекта Vector3D с координатами (1,0,0).</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiAccess value="public"/><apiStatic/><apiData>unknown</apiData><apiValueClassifier>flash.geom:Vector3D</apiValueClassifier></apiValueDef><apiDesc>
    Ось x, определенная в виде объекта Vector3D с координатами (1,0,0).
    
    </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Vector3D:Y_AXIS"><apiName>Y_AXIS</apiName><shortdesc>
    Ось y, определенная в виде объекта Vector3D с координатами (0,1,0).</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiAccess value="public"/><apiStatic/><apiData>unknown</apiData><apiValueClassifier>flash.geom:Vector3D</apiValueClassifier></apiValueDef><apiDesc>
    Ось y, определенная в виде объекта Vector3D с координатами (0,1,0).
    
    </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Vector3D:Z_AXIS"><apiName>Z_AXIS</apiName><shortdesc>
    Ось z, определенная в виде объекта Vector3D с координатами (0,0,1).</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiAccess value="public"/><apiStatic/><apiData>unknown</apiData><apiValueClassifier>flash.geom:Vector3D</apiValueClassifier></apiValueDef><apiDesc>
    Ось z, определенная в виде объекта Vector3D с координатами (0,0,1).
    
    </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Vector3D:w"><apiName>w</apiName><shortdesc>
     Четвертый элемент объекта Vector3D (в дополнение к свойствам x, y и z) может содержать такие данные, как угол вращения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
     Четвертый элемент объекта Vector3D (в дополнение к свойствам <codeph>x</codeph>, <codeph>y</codeph> и <codeph>z</codeph>) может содержать такие данные, как угол вращения. Значением по умолчанию является 0.
     
     <p>Запись кватерниона включает в себя угол в качестве четвертого элемента вычисления трехмерного вращения. Свойство <codeph>w</codeph> можно использовать для определения угла вращения объекта Vector3D. Комбинация угла вращения и координат (x,y,z) задает ориентацию экранного объекта. </p>
     <p>Более того, свойство <codeph>w</codeph> можно использовать в качестве коэффициента деформации перспективы для спроецированного трехмерного положения или в качестве значения преобразования перспективы в представлении трехмерной координаты, спроецированной в двухмерное пространство. Например, можно создать матрицу проекции при помощи свойства <codeph>Matrix3D.rawData</codeph>, которая, после применения к объекту Vector3D, производит значение преобразования для четвертого элемента объекта Vector3D (свойства <codeph>w</codeph>). В результате последующего деления других элементов объекта Vector3D на значение преобразования получается спроецированный объект Vector3D. При помощи метода <codeph>Vector3D.project()</codeph> можно разделить первые три элемента объекта Vector3D на его четвертый элемент.</p>
     
     </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Vector3D/project()"><linktext>project()</linktext></link></related-links></apiValue><apiValue id="flash.geom:Vector3D:x"><apiName>x</apiName><shortdesc>
     Первый элемент объекта Vector3D, например координата x точки в трехмерном пространстве.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
     Первый элемент объекта Vector3D, например координата x точки в трехмерном пространстве. Значением по умолчанию является 0.
     
     </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Vector3D:y"><apiName>y</apiName><shortdesc>
     Второй элемент объекта Vector3D, например координата y точки в трехмерном пространстве.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
     Второй элемент объекта Vector3D, например координата y точки в трехмерном пространстве. Значением по умолчанию является 0.
     
     </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Vector3D:z"><apiName>z</apiName><shortdesc>
     Третий элемент объекта Vector3D, например координата z точки в трехмерном пространстве.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
     Третий элемент объекта Vector3D, например координата z точки в трехмерном пространстве. Значением по умолчанию является 0.
     
     </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Vector3D:lengthSquared:get"><apiName>lengthSquared</apiName><shortdesc>
    Квадрат длины текущего объекта Vector3D, вычисленный с использованием свойств x, y и z.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="read"/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Квадрат длины текущего объекта Vector3D. 
    
    </apiTipText></apiTipTexts></apiValueDef><apiDesc>
    Квадрат длины текущего объекта Vector3D, вычисленный с использованием свойств <codeph>x</codeph>, <codeph>y</codeph> и <codeph>z</codeph>. Свойство <codeph>w</codeph> игнорируется. По возможности используйте метод <codeph>lengthSquared()</codeph> вместо более медленного метода <codeph>Math.sqrt()</codeph> в методе <codeph>Vector3D.length()</codeph>.
    
    </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Vector3D/length"><linktext>length</linktext></link></related-links></apiValue><apiValue id="flash.geom:Vector3D:length:get"><apiName>length</apiName><shortdesc>
    Длина, значение текущего объекта VectorD от исходной точки (0,0,,0) до координат x, y и z объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="read"/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Длина текущего объекта Vector3D. 
    
    </apiTipText></apiTipTexts></apiValueDef><apiDesc>
    Длина, значение, текущего объекта VectorD от исходной точки (0,0,,0) до координат x, y и z объекта. Свойство <codeph>w</codeph> игнорируется. Длина или величина единичного вектора равна единице.
    
    </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Vector3D/lengthSquared"><linktext>lengthSquared</linktext></link></related-links></apiValue></apiClassifier><apiClassifier id="flash.geom:Matrix3D"><apiName>Matrix3D</apiName><shortdesc>
 Класс Matrix3D представляет матрицу преобразования, которая определяет положение и ориентацию трехмерного (3D) экранного объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata><asCustoms><internal>Removed the following since it was very unclear. It could be used for a future example however:
 <p>To support a camera viewpoint and motion, create a camera class that keeps a Matrix3D object for 
 handling the movement of the display objects relative to the camera. In the camera space, the display objects 
 move in the opposite direction of the camera movement. For example, when the camera moves closer, the objects 
 become bigger. In other words, if the camera moves down the world z axis, the objects moves up 
 the z axis. One way to produce this effect is by setting the Matrix3D object of the camera class 
 to the inverse of the display objects' transformation. If the display objects are children of the <code>root</code> 
 display object, the Matrix3D object of the camera class can be set to the inverse of the <code>root</code> 
 display object. Another option is to have the display objects as children of a camera object.</p>
 
 </internal></asCustoms></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
 Класс Matrix3D представляет матрицу преобразования, которая определяет положение и ориентацию трехмерного (3D) экранного объекта. С помощью матрицы можно выполнять функции преобразования, включая перенос (изменение положения по осям x, y и z), поворот и масштабирование (изменение размера). С помощью класса Matrix3D можно также выполнять перспективное проецирование, при котором точки трехмерного координатного пространства сопоставляются в двумерной проекции. 
 
 <p>В одной матрице могут сочетаться несколько преобразований и их одновременное применение к трехмерному экранному объекту. Например, матрицу можно применить к трехмерным координатам для выполнения поворота с последующим перемещением. </p> 
 
 <p>Если свойство <codeph>z</codeph> или какое-либо свойство поворота или масштабирования экранного объекта задано явно, соответствующий объект Matrix3D создается автоматически.</p>
 
 <p>Доступ к объекту Matrix3D трехмерного экранного объекта можно получить с помощью свойства <codeph>transform.matrix3d</codeph>. Для двумерных объектов объект Matrix3D не предусмотрен. </p>
 
 <p>Значение свойства <codeph>z</codeph> двухмерного объекта равно нулю, а значение его свойства <codeph>matrix3D</codeph> равно <codeph>null</codeph>.</p> 
 
 <p><b>Примечание.</b> Если один объект Matrix3D назначен двум различным экранным объектам, возникает ошибка выполнения.</p>
 
 <p>В классе Matrix3D используется квадратная матрица размерностью 4x4, представляющая собой таблицу чисел из четырех строк и столбцов, в которой содержатся данные для преобразования. В первых трех строках матрицы содержатся данные для каждой трехмерной оси (x,y,z). Данные о преобразовании находятся в последнем столбце. Данные об ориентации и масштабировании хранятся в первых трех столбцах. Коэффициенты масштабирования являются диагональными числами в первых трех столбцах. Ниже представлены элементы Matrix3D:</p>  
 
 <p><adobeimage alt="Элементы Matrix3D" href="../../images/Matrix3Delements.jpg"/></p>
 
 <p>Для использования класса Matrix3D не требуется понимание принципов вычисления матриц. В нем предоставляются определенные методы, которые позволяют упростить задачи преобразования и проецирования, например методы <codeph>appendTranslation()</codeph>, <codeph>appendRotation()</codeph> или <codeph>interpolateTo()</codeph>. Можно также использовать методы <codeph>decompose()</codeph> и <codeph>recompose()</codeph> или свойство <codeph>rawData</codeph> для доступа к базовым элементам матрицы.</p>
 
 <p>В экранных объектах выполняется кэширование свойств поворота осей для выполнения отдельного поворота каждой оси и управления различными комбинациями поворотов. При вызове метода объекта Matrix3D для преобразования экранного объекта кэш поворота объекта становится недействительным.</p>
 
 </apiDesc></apiClassifierDetail><related-links><link href="flash.display.xml#DisplayObject"><linktext>flash.display.DisplayObject</linktext></link><link href="flash.geom.xml#Transform"><linktext>flash.geom.Transform</linktext></link><link href="flash.geom.xml#PerspectiveProjection"><linktext>flash.geom.PerspectiveProjection</linktext></link><link href="flash.geom.xml#Vector3D"><linktext>flash.geom.Vector3D</linktext></link><link href="flash.geom.xml#Orientation3D"><linktext>flash.geom.Orientation3D</linktext></link><link href="flash.geom.xml#Utils3D"><linktext>flash.geom.Utils3D</linktext></link><link href="flash.geom.xml#Matrix"><linktext>flash.geom.Matrix</linktext></link></related-links><apiConstructor id="flash.geom:Matrix3D:Matrix3D"><apiName>Matrix3D</apiName><shortdesc>
    Создание объекта Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiConstructorDetail><apiConstructorDef><apiAccess value="public"/><apiParam><apiItemName>v</apiItemName><apiType value="Vector$Number"/><apiData>null</apiData><apiDesc>Вектор из 16 чисел, в котором каждые четыре элемента могут представлять строку или столбец матрицы 4x4.
    
    </apiDesc></apiParam></apiConstructorDef><apiDesc>
    Создание объекта Matrix3D. Объекты Matrix3D можно инициализировать с помощью вектора из 16 чисел, в котором каждые четыре элемента могут представлять строку или столбец. После создания объекта Matrix3D доступ к элементам матрицы можно получить с помощью свойства <codeph>rawData</codeph>. 
    
    <p>Если отсутствуют заданные параметры, конструктор создает единичный объект Matrix3D. По определению в единичной матрице присвоены единичные значения для всех элементов по главной диагонали и нулевые значения для всех остальных элементов. Значением свойства <codeph>rawData</codeph> единичной матрицы является: <codeph>1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1</codeph>. Значением положения или перемещения единичной матрицы является <codeph>Vector3D(0,0,0)</codeph>, значением для вращения – <codeph>Vector3D(0,0,0)</codeph>, а значением для масштабирования – <codeph>Vector3D(1,1,1)</codeph>.</p> 
    
    </apiDesc></apiConstructorDetail><related-links><link href="flash.geom.xml#Matrix3D/identity()"><linktext>identity()</linktext></link><link href="#Vector"><linktext>Вектор</linktext></link></related-links></apiConstructor><apiOperation id="flash.geom:Matrix3D:appendRotation"><apiName>appendRotation</apiName><shortdesc>
    Добавление инкрементного поворота к объекту Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>degrees</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Угол поворота в градусах.
    </apiDesc></apiParam><apiParam><apiItemName>axis</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Ось или направление поворота. Обычно используются оси <codeph>X_AXIS</codeph> (<codeph>Vector3D (1,0,0)</codeph>), <codeph>Y_AXIS</codeph> (<codeph>Vector3D (0,1,0)</codeph>) и <codeph>Z_AXIS</codeph> (<codeph>Vector3D (0,0,1)</codeph>). 
    </apiDesc></apiParam><apiParam><apiItemName>pivotPoint</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiData>null</apiData><apiDesc>Точка, которая определяет центр поворота объекта. Точкой поворота объекта по умолчанию является точка регистрации объекта.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Добавление инкрементного поворота к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет поворот после других преобразований в объекте Matrix3D. 
    
    <p>Поворот экранного объекта определяется осью, постепенно увеличивающимся углом поворота вокруг оси и дополнительной точкой поворота для центра поворота объекта. Ось может располагаться в одном из общепринятых направлений. Наиболее часто используемыми осями являются <codeph>X_AXIS</codeph> (<codeph>Vector3D (1,0,0)</codeph>), <codeph>Y_AXIS</codeph> (<codeph>Vector3D (0,1,0)</codeph>) и <codeph>Z_AXIS</codeph> (<codeph>Vector3D (0,0,1)</codeph>). В авиационной терминологии поворот вокруг оси y называется «рысканием». Поворот вокруг оси x называется «тангажом». Поворот вокруг оси z называется «креном».</p> 
    
    <p>Порядок преобразования учитывается. Эффект преобразования поворота с последующим перемещением отличается от преобразования перемещения с последующим поворотом.</p>
    
    <p>Эффект поворота не является абсолютным. Он выполняется относительно текущего положения и ориентации. Для выполнения абсолютного изменения матрицы преобразования необходимо использовать метод <codeph>recompose()</codeph>. Метод <codeph>appendRotation()</codeph> также отличается от свойства поворота оси экранного объекта, такого как свойство <codeph>rotationX</codeph>. Свойство поворота всегда применяется перед любым преобразованием, в то время как метод <codeph>appendRotation()</codeph> применяется относительно уже существующих значений матрицы. Чтобы получить эффект, аналогичный свойству поворота оси экранного объекта, используйте метод <codeph>prependRotation()</codeph>, который выполняет поворот перед другими преобразованиями матрицы.</p>
    
    <p>Когда преобразование метода <codeph>appendRotation()</codeph> применяется к объекту Matrix3D экранного объекта, кэшированные значения свойств поворота экранного объекта становятся недействительными.</p> 
    
    <p>Одним из способов вращения экранного объекта вокруг определенной точки относительно его расположения является настройка перемещения объекта в заданную точку, вращение объекта с использованием метода <codeph>appendRotation()</codeph> и обратное перемещение объекта а исходное положение. В следующем примере трехмерный экранный объект <codeph>myObject</codeph> осуществляет вращение по оси y вокруг точки с координатами (10,10,0).</p>
    
    <codeblock rev="3.0">
    
    myObject.z = 1; 
    myObject.transform.matrix3D.appendTranslation(10,10,0);
    myObject.transform.matrix3D.appendRotation(1, Vector3D.Y_AXIS);
    myObject.transform.matrix3D.appendTranslation(-10,-10,0);
     
    </codeblock>
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/prependRotation()"><linktext>prependRotation()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:appendScale"><apiName>appendScale</apiName><shortdesc>
    Добавление инкрементного изменения масштаба вдоль осей x, y и z к объекту Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>xScale</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент, используемый для масштабирования объекта вдоль оси x.
    </apiDesc></apiParam><apiParam><apiItemName>yScale</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент, используемый для масштабирования объекта вдоль оси y.
    </apiDesc></apiParam><apiParam><apiItemName>zScale</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент, используемый для масштабирования объекта по оси z.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Добавление инкрементного изменения масштаба вдоль осей x, y и z к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет изменения масштаба после других преобразований в объекте Matrix3D. По умолчанию используется коэффициент масштабирования, равный (1.0, 1.0, 1.0).
    
    <p>Масштаб определяется как набор трех инкрементных изменений вдоль трех осей (x,y,z). Каждую ось можно умножить на различное число. При применении изменений масштаба к экранному объекту размер объекта увеличивается или уменьшается. Например, установка осей x, y и z на значение 2 увеличивает размер объекта вдвое, тогда как установка этих осей на значение <codeph>0.5</codeph> уменьшает размер в два раза. Чтобы преобразование масштаба выполнялось только относительно определенной оси, необходимо задать для остальных параметров значения 1. Значение 1 параметра означает, что изменение масштаба вдоль заданной оси выполняться не будет.</p>
    
    <p>Метод <codeph>appendScale()</codeph> можно использовать для изменения размеров, а также для управления искажениями, такими как укорочение или удлинение экранного объекта или увеличение или уменьшение масштаба определенного местоположения. Преобразования масштаба выполняются автоматически во время поворота и перемещения экранного объекта.</p>
    
    <p>Порядок преобразования учитывается. Эффект масштабирования с последующим перемещением отличается от эффекта перемещения с последующим преобразованием масштаба.</p>
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/prependScale()"><linktext>prependScale()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:appendTranslation"><apiName>appendTranslation</apiName><shortdesc>
    Добавление инкрементного перемещения, изменения положения вдоль осей x, y и z, к объекту Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>x</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Инкрементное перемещение по оси x.
    </apiDesc></apiParam><apiParam><apiItemName>y</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Инкрементное перемещение по оси y.
    </apiDesc></apiParam><apiParam><apiItemName>z</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Инкрементное перемещение по оси z.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Добавление инкрементного перемещения, изменения положения вдоль осей x, y и z, к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет изменения перемещения после других преобразований в объекте Matrix3D.
    
    <p>Перемещение определяется как набор из трех инкрементных изменений вдоль трех осей (x,y,z). Когда преобразование применяется к экранному объекту, экранный объект перемещается из текущего положения вдоль осей x, y и z в соответствии с заданными параметрами. Чтобы перемещение выполнялось только относительно определенной оси, необходимо задать для остальных параметров нулевые значения. Нулевое значение параметра означает, что изменение вдоль заданной оси выполняться не будет.</p> 
    
    <p>Изменения перемещения не являются абсолютными. Они выполняются относительно текущего расположения и ориентации матрицы. Для выполнения абсолютного изменения матрицы преобразования необходимо использовать метод <codeph>recompose()</codeph>. Порядок преобразования также учитывается. Эффект преобразования перемещения, за которым следует поворот, отличается от поворота с последующим перемещением.</p>
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/prependTranslation()"><linktext>prependTranslation()</linktext></link><link href="flash.geom.xml#Matrix3D/position"><linktext>position</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:append"><apiName>append</apiName><shortdesc>
    Добавление матрицы путем умножения другого объекта Matrix3D на текущий объект Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>lhs</apiItemName><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier><apiDesc>Левосторонняя матрица, то есть умноженная на текущий объект Matrix3D.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Добавление матрицы путем умножения другого объекта Matrix3D на текущий объект Matrix3D. Результат объединяет оба преобразования матрицы. Объект Matrix3D можно умножить на несколько матриц. В конечном объекте Matrix3D будет содержаться результат всех преобразований.
    
    <p>Умножение матриц отличается от сложения матриц. Умножение матриц не является коммутативным. Другими словами, A, умноженное на Б, не равно Б, умноженному на А. При использовании метода <codeph>append()</codeph> умножение выполняется с левой стороны, то есть объект Matrix3D <codeph>lhs</codeph> находится слева от оператора умножения.</p>
    
    <codeph>thisMatrix = lhs ~~ thisMatrix;</codeph>
      
    <p>При первом вызове метода <codeph>append()</codeph> выполняется изменение относительно вышестоящего пространства. При последующих вызовах выполняются изменения относительно системы координат добавленного объекта Matrix3D.</p>
    
    <p>Метод <codeph>append()</codeph> заменяет текущую матрицу добавленной матрицей. Если необходимо добавить две матрицы без изменения текущей матрицы, скопируйте текущую матрицу с помощью метода <codeph>clone()</codeph>, а затем примените метод <codeph>append()</codeph> к копии.</p>
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/prepend()"><linktext>flash.geom.Matrix3D.prepend()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:clone"><apiName>clone</apiName><shortdesc>
    Возвращает новый объект Matrix3D, который является точной копией текущего объекта Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новый объект Matrix3D, который является точной копией текущего объекта Matrix3D.
    
    </apiDesc><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
    Возвращает новый объект Matrix3D, который является точной копией текущего объекта Matrix3D.      
    
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix3D:decompose"><apiName>decompose</apiName><shortdesc>
    Возвращает параметры перемещения, поворота и масштабирования матрицы преобразования в виде вектора из тех объектов Vector3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Вектор из трех объектов Vector3D, в каждом из которых содержатся соответствующие параметры перемещения, поворота и масштабирования. 
    
    </apiDesc><apiType value="Vector$flash.geom:Vector3D"/></apiReturn><apiParam><apiItemName>orientationStyle</apiItemName><apiOperationClassifier>String</apiOperationClassifier><apiData>eulerAngles</apiData><apiDesc>Необязательный параметр, определяющий стиль ориентации, используемый для матрицы преобразования. Три типа стиля ориентации: <codeph>eulerAngles</codeph> (константа <codeph>EULER_ANGLES</codeph>), <codeph>axisAngle</codeph> (константа <codeph>AXIS_ANGLE</codeph>) и <codeph>quaternion</codeph> (константа <codeph>QUATERNION</codeph>). Для получения дополнительной информации о другом стиле ориентации см. класс <codeph>geom.Orientation3D</codeph>.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Возвращает параметры перемещения, поворота и масштабирования матрицы преобразования в виде вектора из тех объектов Vector3D. В первом объекте Vector3D хранятся элементы перемещения. Во втором объекте Vector3D хранятся элементы поворота. В третьем объекте Vector3D хранятся элементы масштабирования. 
    
    <p>Некоторые методы Matrix3D, например метод <codeph>interpolateTo()</codeph>, автоматически разбивает на части и восстанавливает матрицу для выполнения преобразования.</p> 
       
    <p>Чтобы модифицировать преобразование матрицы с использованием абсолютной вышестоящей системой координат, получите параметры при помощи метода <codeph>decompose()</codeph> и внесите соответствующие изменения. Затем можно применить к объекту Matrix3D измененное преобразование при помощи метода <codeph>recompose()</codeph>.</p>
    
    <p>Параметр метода <codeph>decompose()</codeph> задает стиль ориентации, используемый для преобразования. По умолчанию используется ориентация <codeph>eulerAngles</codeph>, которая определяет ориентацию с тремя различными углами поворота вокруг каждой оси. Повороты выполняются последовательно, и ось каждого поворота не изменяется. С помощью свойств поворота осей экранного объекта выполняется преобразование стиля ориентации эйлеровых углов (Euler Angles). Другими вариантами стиля ориентации являются <codeph>axisAngle</codeph> и <codeph>quaternion</codeph>. Для определения ориентации межосевых улов используется комбинация оси и угла. Ось, вокруг которой вращается объект, является единичным вектором, который представляет направление. Угол представляет величину поворота относительно вектора. Направление также определяет расположение лицевой стороны экранного объекта, а угол – направление лицевой стороны вверх. В методах <codeph>appendRotation()</codeph> и <codeph>prependRotation()</codeph> используется ориентация межосевого угла. В ориентации кватерниона используются комплексные числа и четвертый элемент вектора. Такая ориентация представлена тремя осями поворота (x,y,z) и углом поворота (w). В методе <codeph>interpolate()</codeph> используется кватернион.</p> 
    
    </apiDesc><example conref="examples\Matrix3DdecomposeExample.as"> В следующем примере при помощи методов <codeph>decompose()</codeph> и <codeph>recompose()</codeph> эллипс вытягивается по горизонтали во время движения к точке схода. Первый объект Vector3D, возвращенный методом <codeph>decompose()</codeph>, содержит координаты перемещения. Третий объект Vector3D содержит параметры масштабирования. Метод объекта Vector3D <codeph>incrementBy()</codeph> увеличивает значения параметров абсолютного перемещения и масштабирования матрицы.
<codeblock>
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.geom.*;
    import flash.events.Event;
    
    public class Matrix3DdecomposeExample extends MovieClip {
        private var ellipse:Shape = new Shape();

        public function Matrix3DdecomposeExample():void {
            
            ellipse.x = (this.stage.stageWidth / 2);
            ellipse.y = (this.stage.stageHeight - 40);
            ellipse.z = 1;
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(0, 0, 50, 40);
            ellipse.graphics.endFill();
            addChild(ellipse);

            ellipse.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

        private function enterFrameHandler(e:Event):void {  

            var v3:Vector.&lt;Vector3D> = new Vector.&lt;Vector3D>(3);
            v3 = ellipse.transform.matrix3D.decompose();
            v3[0].incrementBy(new Vector3D(0,0,1));
            v3[2].incrementBy(new Vector3D(0.01,0,0));
            ellipse.transform.matrix3D.recompose(v3);
        }
    }
}
</codeblock></example></apiOperationDetail><related-links><link href="flash.geom.xml#Orientation3D"><linktext>flash.geom.Orientation3D</linktext></link><link href="flash.geom.xml#Matrix3D/recompose()"><linktext>recompose()</linktext></link><link href="#Vector"><linktext>Вектор</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:deltaTransformVector"><apiName>deltaTransformVector</apiName><shortdesc>
    Использует матрицу преобразования без элементов перемещения для преобразования объекта Vector3D из одних пространственных координат в другие.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Объект Vector3D с преобразованными координатами.
    
    </apiDesc><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>v</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D с координатами, которые подлежат преобразованию.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Использует матрицу преобразования без элементов перемещения для преобразования объекта Vector3D из одних пространственных координат в другие. В возвращенном объекте Vector3D содержатся новые координаты, полученные после применения преобразований поворота и масштабирования. Если в методе <codeph>deltaTransformVector()</codeph> применяется матрица, в которой содержится только преобразование перемещения, возвращенный объект Vector3D совпадает с исходным объектом Vector3D.
    
    <p>Метод <codeph>deltaTransformVector()</codeph> можно использовать, чтобы экранный объект в одном пространстве координат реагировал на преобразование поворота второго экранного объекта. Поворот не будет копироваться в объекте; изменяется только положение объекта в соответствии с изменениями поворота. Например, чтобы использовать программный интерфейс <codeph>display.Graphics</codeph> для рисования трехмерного вращающегося экранного объекта, необходимо назначить координаты трехмерного вращающегося объекта двухмерной точке. Сначала получите трехмерные координаты объекта после каждого поворота с помощью метода <codeph>deltaTransformVector()</codeph>. Далее примените метод <codeph>local3DToGlobal()</codeph> экранного объекта для преобразования трехмерных координат в двумерные точки. Затем двумерные точки можно использовать для рисования трехмерного вращающегося объекта.</p> 
    
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/transformVectors()"><linktext>transformVectors()</linktext></link><link href="flash.geom.xml#Matrix3D/transformVector()"><linktext>transformVector()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:identity"><apiName>identity</apiName><shortdesc>
    Преобразует текущую матрицу в единичную матрицу.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
    Преобразует текущую матрицу в единичную матрицу. В единичной матрице присвоены единичные значения для всех элементов по главной диагонали и нулевые значения для всех остальных элементов. В результате получается матрица, в которой значение <codeph>rawData</codeph> равно <codeph>1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1</codeph>, в качестве параметра поворота используется <codeph>Vector3D(0,0,0)</codeph>, для параметра положения или перемещения задано значение <codeph>Vector3D(0,0,0)</codeph>, а для масштаба – <codeph>Vector3D(1,1,1)</codeph>. Ниже представлена единичная матрица:
    
    <p><adobeimage alt="Единичная матрица" href="../../images/identityMatrix.jpg"/></p>
    
    <p>Преобразование объекта путем применения единичной матрицы не выполняется. Другими словами, если матрица умножается на единичную матрицу, в результате получается матрица, идентичная исходной матрице.</p>
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix3D:interpolateTo"><apiName>interpolateTo</apiName><shortdesc>
    Интерполяция матрицы экранного объекта на процентное значение ближе к целевой матрице.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>toMat</apiItemName><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier><apiDesc>Целевой объект Matrix3D.  
    </apiDesc></apiParam><apiParam><apiItemName>percent</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение от <codeph>0</codeph> до <codeph>1</codeph>, которое определяет расположение экранного объекта относительно цели. Чем ближе значение к <codeph>1,0</codeph>, тем ближе экранный объект к его текущему положению. Чем ближе значение к <codeph>0</codeph>, тем ближе экранный объект к цели.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Интерполяция матрицы экранного объекта на процентное значение ближе к целевой матрице. Все элементы для перемещения, поворота и масштабирования экранного объекта интерполируются до промежуточных значений матрицы текущего и матрицы целевого объекта. 
    
    <p>Метод <codeph>interpolateTo()</codeph> позволяет избежать получения нежелательных результатов, которые могут появиться при использовании методов, таких как свойств поворота осей экранного объекта. Метод <codeph>interpolateTo()</codeph> отменяет действие кэшированного значения свойства поворота экранного объекта и преобразует элементы ориентации матрицы экранного объекта в кватернион перед интерполяцией. Этот метод обеспечивает кратчайший наиболее эффективный контур вращения. Он также позволяет выполнять сглаживание без эффекта «шарнирного замка». Эффект «шарнирного замка» может произойти при использовании эйлеровых углов, когда каждая ось обрабатывается независимо. Во время вращения вокруг двух или более осей оси оказываются расположенными параллельно друг другу, что приводит к получению непредвиденных результатов. Вращение кватерниона позволяет избежать появление эффекта «шарнирного замка».</p> 
    
    <p>При последующих вызовах метода <codeph>interpolateTo()</codeph> может возникнуть эффект быстрого запуска экранного объекта, а затем медленное приближение другого экранного объекта. Например, если для параметра percent задано значение <codeph>0,1</codeph>, экранный объект перемещается на десять процентов ближе к целевому объекту, заданному параметром <codeph>toMat</codeph>. При последующих вызовах или в последующих кадрах объект переместится на десять процентов от оставшихся девяноста процентов, затем на десять процентов от оставшихся восьмидесяти, пока цель не будет достигнута.</p>  
    
    </apiDesc><example conref="examples\InterpolateToExample.as"> В данном примере <codeph>ellipse2</codeph>, трехмерный экранный объект, перемещается по направлению к <codeph>ellipse1</codeph>, другому трехмерному экранному объекту. <codeph>ellipse2</codeph> следует за <codeph>ellipse1</codeph>, пытаясь поймать его. Если <codeph>ellipse1</codeph> не будет вращаться вокруг своей оси y, <codeph>ellipse2</codeph> достигнет верха <codeph>ellipse1</codeph>. Эти два эллипса нарисованы одинаково, но размещены в различных трехмерных положениях мировых координат. 
<codeblock>
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.display.Graphics;
    import flash.geom.*;
    import flash.events.Event;

    public class InterpolateToExample extends MovieClip {
        private var ellipse1:Shape = new Shape();
        private var ellipse2:Shape = new Shape();

        public function InterpolateToExample():void {

            ellipse1 = myEllipses(250, 100, 500, 0xFF0000);
            addChild(ellipse1);
            
            ellipse2 = myEllipses(-30, 120, 1, 0x00FF00);
            addChild(ellipse2);

            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }

        private function myEllipses(x:Number, y:Number, z:Number, c:Number):Shape {
            var s:Shape = new Shape();                            
            s.x = x;
            s.y = y;
            s.z = z;
            s.graphics.beginFill(c);
            s.graphics.lineStyle(2);
            s.graphics.drawEllipse(100, 50, 100, 80);
            s.graphics.endFill();
            return s;
        }

        private function enterFrameHandler(e:Event) {
            ellipse1.rotationY += 1;

            ellipse2.transform.matrix3D.interpolateTo(ellipse1.transform.matrix3D, 0.1);
        }
    }
}
</codeblock></example></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/interpolate()"><linktext>interpolate()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:interpolate"><apiName>interpolate</apiName><shortdesc>
    Позволяет упростить интерполяцию из одной координатной системы в другую путем интерполяции экранного объекта на процентное значение ближе к целевому экранному объекту.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Объект Matrix3D с элементами, которые размещают значения матрицы между исходной матрицей и целевой матрицей. Когда возвращенная матрица применяется к экранному объекту <codeph>this</codeph>, объект перемещается на определенное значение ближе к целевому объекту.
    
    </apiDesc><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>thisMat</apiItemName><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier><apiDesc>Объект Matrix3D, который будет интерполирован.
    </apiDesc></apiParam><apiParam><apiItemName>toMat</apiItemName><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier><apiDesc>Целевой объект Matrix3D.
    </apiDesc></apiParam><apiParam><apiItemName>percent</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение от <codeph>0</codeph> до <codeph>1</codeph>, которое определяет процентное значение, на которое следует интерполировать объект Matrix3D <codeph>thisMat</codeph> по отношению к целевому объекту Matrix3D.
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Интерполирует экранный объект на процентную величину ближе по направлению к целевому экранному объекту.
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    Позволяет упростить интерполяцию из одной координатной системы в другую путем интерполяции экранного объекта на процентное значение ближе к целевому экранному объекту. В результате получается новый объект Matrix3D, в котором все элементы для перемещения, поворота и масштабирования интерполированы до промежуточных значений текущего и целевого экранного объекта.
    
    <p>Метод <codeph>interpolate()</codeph> позволяет избежать получение некоторых нежелательных результатов, которые могут появиться при использовании методов, таких как свойств поворота осей экранного объекта. Метод <codeph>interpolate()</codeph> отменяет действие кэшированного значения свойства поворота экранного объекта и преобразует элементы ориентации матрицы экранного объекта в кватернион перед интерполяцией. Этот метод обеспечивает кратчайший наиболее эффективный контур вращения. Он также позволяет выполнять сглаживание без эффекта «шарнирного замка». Эффект «шарнирного замка» может произойти при использовании эйлеровых углов, когда каждая ось обрабатывается независимо. Во время вращения вокруг двух или более осей оси оказываются расположенными параллельно друг другу, что приводит к получению непредвиденных результатов. Вращение кватерниона позволяет избежать появление эффекта «шарнирного замка».</p> 
    
    <p>При последующих вызовах метода <codeph>interpolate()</codeph> может возникать эффект быстрого запуска экранного объекта, а затем медленное приближение другого экранного объекта. Например, если установить параметр <codeph>thisMat</codeph> на возвращенный объект Matrix3D, параметр <codeph>toMat</codeph> на объект Matrix3D, связанный с целевым экранным объектом, а параметр <codeph>percent</codeph> на значение <codeph>0,1</codeph>, экранный объект переместится на 10 процентов ближе к целевому объекту. При последующих вызовах или в последующих кадрах объект переместится на десять процентов от оставшихся девяноста процентов, затем на десять процентов от оставшихся восьмидесяти, пока цель не будет достигнута.</p>  
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/interpolateTo()"><linktext>interpolateTo()</linktext></link><link href="flash.geom.xml#Utils3D/pointTowards()"><linktext>flash.geom.Utils3D.pointTowards()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:invert"><apiName>invert</apiName><shortdesc>
    Обращение текущей матрицы.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращает значение <codeph>true</codeph>, если обращение матрицы выполнено успешно. 
    
    </apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
    Обращение текущей матрицы. Размер обратной матрицы равен размеру исходной матрицы, но выполнено обратное преобразование исходной матрицы. Например, если в исходной матрице объект вращается вокруг оси x в определенном направлении, при обращении матрицы объект будет вращаться вокруг оси в обратном направлении. При применении обратной матрицы к объекту происходит отмена преобразования, выполненного исходной матрицей. При умножении матрицы на обратную матрицу получается единичная матрица. 
    
    <p>Обратную матрицу можно использовать для деления одной матрицы на другую. Разделить матрицу A на матрицу B можно, умножив матрицу А на обратную матрицу B. Обратную матрицу можно также использовать с пространством камеры. При перемещении камеры в пространстве мировых координат объект в этом пространстве должен перемещаться в обратном направлении для выполнения преобразования представления в мировых координатах в пространство камеры или обзора. Например, когда камера перемещается ближе, объекты становятся больше. Другими словами, если камера перемещается вниз по оси z мировой системы координат, объект перемещается вверх по оси z мировой системы координат.</p> 
    
    <p>Метод <codeph>invert()</codeph> заменяет текущую матрицу обратной матрицей. Если необходимо обратить матрицу без изменения текущей матрицы, сначала скопируйте текущую матрицу с помощью метода <codeph>clone()</codeph>, а затем примените метод <codeph>invert()</codeph> к копии.</p>
    
    <p>Объект Matrix3D должен быть обратимым.</p> 
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/determinant"><linktext>определитель</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:pointAt"><apiName>pointAt</apiName><shortdesc>
    Поворот экранного объекта, чтобы он был обращен лицевой стороной к определенному положению.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>pos</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Положение целевого объекта относительно мировых координат. Положение относительно мировых координат определяет преобразование объекта относительно мирового пространства, в котором располагаются все объекты.
    
    </apiDesc></apiParam><apiParam><apiItemName>at</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiData>null</apiData><apiDesc>Вектор относительно объекта, определяющий место локализации экранного объекта. Положение относительно объекта определяет преобразование объекта относительно пространства объекта, собственной координатной системы объекта. Значением по умолчанию является ось <i>-z</i> (0,0,-1).
    
    </apiDesc></apiParam><apiParam><apiItemName>up</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiData>null</apiData><apiDesc>Вектор относительно объекта, определяющий «верх» экранного объекта. Если объект обращен лицевой стороной вниз при просмотре сверху, ось <i>+z</i> будет являться для этого объекта вектором, направленным вверх. Положение относительно объекта определяет преобразование объекта относительно пространства объекта, собственной координатной системы объекта. Значением по умолчанию является ось <i>-y</i> (0,-1,0).
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Поворот экранного объекта, чтобы он был обращен лицевой стороной к определенному положению. Этот метод позволяет выполнять изменение ориентации на месте. Прямое направление вектора экранного объекта (объект Vector3D <codeph>at</codeph>) будет указывать на заданное положение относительно мировых координат. Направление экранного объекта вверх задается с помощью объекта Vector3D <codeph>up</codeph>. 
    
    <p>Метод <codeph>pointAt()</codeph> отменяет действие кэшированных значений свойств поворота экранного объекта. Метод разбивает на части матрицу экранного объекта и изменяет элементы поворота для поворота объекта в заданное положение. А затем восстанавливает (обновляет) матрицу экранного объекта, которая выполняет преобразование. Если объект указывает на движущуюся цель, например положение перемещающегося объекта, то при каждом последующем вызове метода объект будет поворачиваться к движущейся цели.</p>
    
    </apiDesc><example conref="examples\PointAtExample.as"> В следующем примере треугольник указывает на эллипс и следует по траектории его движения. Для эллипса и треугольника заданы различные местоположения. Затем эллипс перемещается вверх по направлению к углу рабочей области. Треугольник следует за перемещением эллипса. Можно изменить форму треугольника и параметры at и up метода <codeph>pointAt()</codeph>, чтобы увидеть, как эти изменения влияют на движение треугольника.
<codeblock>
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.display.Graphics;
    import flash.geom.*;
    import flash.events.Event;

    public class PointAtExample extends MovieClip {
        private var ellipse:Shape = new Shape();
        private var triangle:Shape = new Shape();

        public function PointAtExample():void {
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(30, 40, 50, 40);
            ellipse.graphics.endFill();
            ellipse.x = 100;
            ellipse.y = 150;
            ellipse.z = 1;

            triangle.graphics.beginFill(0x0000FF);
            triangle.graphics.moveTo(0, 0);
            triangle.graphics.lineTo(40, 40);
            triangle.graphics.lineTo(80, 0);
            triangle.graphics.lineTo(0, 0);
            triangle.graphics.endFill();
            triangle.x = 200;
            triangle.y = 50;
            triangle.z = 1;

            addChild(ellipse);
            addChild(triangle);

            ellipse.addEventListener(Event.ENTER_FRAME, ellipseEnterFrameHandler);
            triangle.addEventListener(Event.ENTER_FRAME, triangleEnterFrameHandler);
        }

        private function ellipseEnterFrameHandler(e:Event) {
            if(e.target.y > 0) {
                e.target.y -= 1;
                e.target.x -= 1;
            }
        }
        
        private function triangleEnterFrameHandler(e:Event) {
            e.target.transform.matrix3D.pointAt(ellipse.transform.matrix3D.position,
                                                Vector3D.X_AXIS, Vector3D.Y_AXIS);
        }
    }
}
</codeblock></example></apiOperationDetail><related-links><link href="flash.geom.xml#Utils3D/pointTowards()"><linktext>flash.geom.Utils3D.pointTowards()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:prependRotation"><apiName>prependRotation</apiName><shortdesc>
    Добавление в начало инкрементного поворота к объекту Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>degrees</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Угол поворота.
    </apiDesc></apiParam><apiParam><apiItemName>axis</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Ось или направление поворота. Обычно используются оси <codeph>X_AXIS</codeph> (<codeph>Vector3D (1,0,0)</codeph>), <codeph>Y_AXIS</codeph> (<codeph>Vector3D (0,1,0)</codeph>) и <codeph>Z_AXIS</codeph> (<codeph>Vector3D (0,0,1)</codeph>). 
    </apiDesc></apiParam><apiParam><apiItemName>pivotPoint</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiData>null</apiData><apiDesc>Точка, которая определяет центр поворота. Точкой поворота объекта по умолчанию является точка регистрации объекта.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Добавление в начало инкрементного поворота к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет поворот перед другими преобразованиями в объекте Matrix3D. 
    
    <p>Поворот экранного объекта определяется осью, постепенно увеличивающимся углом поворота вокруг оси и дополнительной точкой поворота для центра поворота объекта. Ось может располагаться в одном из общепринятых направлений. Наиболее часто используемыми осями являются <codeph>X_AXIS</codeph> (<codeph>Vector3D (1,0,0)</codeph>), <codeph>Y_AXIS</codeph> (<codeph>Vector3D (0,1,0)</codeph>) и <codeph>Z_AXIS</codeph> (<codeph>Vector3D (0,0,1)</codeph>). В авиационной терминологии поворот вокруг оси y называется «рысканием». Поворот вокруг оси x называется «тангажом». Поворот вокруг оси z называется «креном».</p> 
    
    <p>Порядок преобразования учитывается. Эффект преобразования поворота с последующим перемещением отличается от перемещения с последующим поворотом.</p>
    
    <p>Эффект поворота не является абсолютным. Эффект относится к объекту, то есть относительно координатной системы исходного положения и ориентации. Для выполнения абсолютного изменения преобразования необходимо использовать метод <codeph>recompose()</codeph>.</p>
    
    <p>Когда преобразование метода <codeph>prependRotation()</codeph> применяется к объекту Matrix3D экранного объекта, кэшированные значения свойств поворота экранного объекта становятся недействительными.</p> 
    
    <p>Одним из способов вращения экранного объекта вокруг определенной точки относительно его расположения является настройка перемещения объекта в заданную точку, вращение объекта с использованием метода <codeph>prependRotation()</codeph> и обратное перемещение объекта в исходное положение. В следующем примере трехмерный экранный объект <codeph>myObject</codeph> осуществляет вращение по оси y вокруг точки с координатами (10,10,0).</p>
    
    <codeblock rev="3.0">
    
    myObject.z = 1; 
    myObject.transform.matrix3D.prependTranslation(10,10,0);
    myObject.transform.matrix3D.prependRotation(1, Vector3D.Y_AXIS);
    myObject.transform.matrix3D.prependTranslation(-10,-10,0);
     
    </codeblock>
    
    </apiDesc><example conref="examples\Matrix3DprependRotationExample.as"> В следующем примере пользователь может двигать мышь, чтобы заставить эллипс вращаться вокруг осей <i>x</i> и <i>y</i>. Эллипс рисуется с точкой регистрации в центре. Эллипс вращается вокруг оси <i>y</i>, используя координату <i>x</i> мыши. Эллипс вращается вокруг оси <i>x</i>, используя координату <i>y</i> мыши.
 
<codeblock>
package {
    import flash.display.MovieClip;
    import flash.display.Shape;
    import flash.geom.*;
    import flash.events.MouseEvent;
    
    public class Matrix3DprependRotationExample extends MovieClip {
        private var ellipse:Shape = new Shape();

        public function Matrix3DprependRotationExample():void {

            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(-50, -40, 100, 80);
            ellipse.graphics.endFill();

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

            stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
        }

        private function mouseMoveHandler(e:MouseEvent):void {
            var y:int;
            var x:int;
            
            if(e.localX > ellipse.x) {
                y = (Math.round(e.localX) / 100);   
            } else {
                y = -(Math.round(e.localX) / 10);   
            }
            
            if(e.localY > ellipse.y) {
                x = (Math.round(e.localY) / 100);
            } else {
                x = -(Math.round(e.localY) / 100);
            }
            
            ellipse.transform.matrix3D.prependRotation(y, Vector3D.Y_AXIS);
            ellipse.transform.matrix3D.prependRotation(x, Vector3D.X_AXIS);
        }
        
    }
}
</codeblock></example></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/appendRotation()"><linktext>appendRotation()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:prependScale"><apiName>prependScale</apiName><shortdesc>
    Добавление в начало инкрементного изменения масштаба вдоль осей x, y и z к объекту Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>xScale</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент, используемый для масштабирования объекта вдоль оси x.
    </apiDesc></apiParam><apiParam><apiItemName>yScale</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент, используемый для масштабирования объекта вдоль оси y.
    </apiDesc></apiParam><apiParam><apiItemName>zScale</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент, используемый для масштабирования объекта по оси z.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Добавление в начало инкрементного изменения масштаба вдоль осей x, y и z к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет масштабирование перед другими преобразованиями в объекте Matrix3D. Изменения выполняются относительно объекта, то есть относительно координатной системы исходного положения и ориентации. По умолчанию используется коэффициент масштабирования, равный (1.0, 1.0, 1.0).
    
    <p>Масштаб определяется как набор трех инкрементных изменений вдоль трех осей (x,y,z). Каждую ось можно умножить на различное число. При применении изменений масштаба к экранному объекту размер объекта увеличивается или уменьшается. Например, установка осей x, y и z на значение 2 увеличивает размер объекта вдвое, тогда как установка этих осей на значение <codeph>0.5</codeph> уменьшает размер в два раза. Чтобы преобразование масштаба выполнялось только относительно определенной оси, необходимо задать для остальных параметров значения 1. Значение 1 параметра означает, что изменение масштаба вдоль заданной оси выполняться не будет.</p>
    
    <p>Метод <codeph>prependScale()</codeph> можно использовать для изменения размеров, а также для управления искажениями, такими как укорочение или удлинение экранного объекта. Он также может использоваться для увеличения или уменьшения масштаба определенного местоположения. Преобразования масштаба выполняются автоматически во время поворота и перемещения экранного объекта.</p>
    
    <p>Порядок преобразования учитывается. Эффект масштабирования с последующим перемещением отличается от эффекта перемещения с последующим преобразованием масштаба.</p>
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/appendScale()"><linktext>appendScale()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:prependTranslation"><apiName>prependTranslation</apiName><shortdesc>
    Добавление в начало инкрементного перемещения, изменения положения вдоль осей x, y и z, к объекту Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>x</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Инкрементное перемещение по оси x.
    </apiDesc></apiParam><apiParam><apiItemName>y</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Инкрементное перемещение по оси y.
    </apiDesc></apiParam><apiParam><apiItemName>z</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Инкрементное перемещение по оси z.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Добавление в начало инкрементного перемещения, изменения положения вдоль осей x, y и z, к объекту Matrix3D. Когда объект Matrix3D применяется к экранному объекту, матрица выполняет изменения перемещения перед другими преобразованиями в объекте Matrix3D. 
       
    <p>Перемещение определяет расстояние, на которое передвигается экранный объект из текущего положения вдоль осей x, y и z. Метод <codeph>prependTranslation()</codeph> задает перемещение как набор трех инкрементных изменений положения вдоль трех осей (x,y,z). Для выполнения изменения перемещения только вдоль определенной оси необходимо задать для остальных параметров нулевые значения. Нулевое значение параметра означает, что изменение вдоль заданной оси выполняться не будет.</p>
    
    <p>Изменения перемещения не являются абсолютными. Эффект относится к объекту, то есть относительно координатной системы исходного положения и ориентации. Для выполнения абсолютного изменения матрицы преобразования необходимо использовать метод <codeph>recompose()</codeph>. Порядок преобразования также учитывается. Эффект преобразования перемещения, за которым следует поворот, отличается от преобразования поворота с последующим перемещением. При использовании метода <codeph>prependTranslation()</codeph> экранный объект продолжает перемещаться лицевой стороной вперед вне зависимости от других преобразований. Например, если экранный объект был повернут лицевой стороной к положительной оси x, перемещение объекта продолжится в направлении, заданном в методе <codeph>prependTranslation()</codeph>, вне зависимости от поворота объекта. Для выполнения изменения перемещения после других преобразований необходимо использовать метод <codeph>appendTranslation()</codeph>.</p> 
    
    
    </apiDesc><example conref="examples\Matrix3DprependTranslationExample.as"> В следующем примере пользователь может заставить эллипс переместиться вверх по оси <i>y</i> рабочей области, используя мышь. При наведении курсора мыши на эллипс он перемещается на 10 координат вверх по оси <i>y</i>. Если убрать курсор с эллипса до того, как он достиг верха, он снова переместится на 10 координат вверх по оси <i>y</i>. После того как эллипс достигнет верха, он переместится обратно в низ рабочей области.
<codeblock>
package {
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.geom.*;
    import flash.events.MouseEvent;

    public class Matrix3DprependTranslationExample extends MovieClip {
        private var ellipse:Sprite = new Sprite();

        public function Matrix3DprependTranslationExample():void {
            ellipse.x = this.stage.stageWidth / 2;
            ellipse.y = this.stage.stageHeight - 100;
            ellipse.z = 1;
            ellipse.graphics.beginFill(0xFF0000);
            ellipse.graphics.lineStyle(2);
            ellipse.graphics.drawEllipse(0, 0, 60, 50);
            ellipse.graphics.endFill();
            addChild(ellipse);

            ellipse.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
            ellipse.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
        }

        private function mouseOverHandler(e:MouseEvent):void {
            if(ellipse.y > 0) { 
                ellipse.transform.matrix3D.prependTranslation(0, -10, 0);
            } 
        }
        
        private function mouseOutHandler(e:MouseEvent):void {
            if(ellipse.y > 0) { 
                ellipse.transform.matrix3D.prependTranslation(0, -10, 0);
            } else {
                ellipse.transform.matrix3D.prependTranslation(0, 
                                     (this.stage.stageHeight - 100), 0);
            }   
        }
    }
}
</codeblock></example></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/appendTranslation()"><linktext>appendTranslation()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:prepend"><apiName>prepend</apiName><shortdesc>
    Вставка матрицы в начало путем умножения текущего объекта Matrix3D на другой объект Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>rhs</apiItemName><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier><apiDesc>Правосторонняя матрица, на которую умножается текущий объект Matrix3D.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Вставка матрицы в начало путем умножения текущего объекта Matrix3D на другой объект Matrix3D. Результат объединяет оба преобразования матрицы. 
    
    <p>Умножение матриц отличается от сложения матриц. Умножение матриц не является коммутативным. Другими словами, A, умноженное на Б, не равно Б, умноженному на А. При использовании метода <codeph>prepend()</codeph> умножение выполняется с правой стороны, то есть объект Matrix3D <codeph>rhs</codeph> находится справа от оператора умножения.</p>
    
    <codeph>thisMatrix = thisMatrix ~~ rhs</codeph>
      
    <p>При помощи метода <codeph>prepend()</codeph> осуществляются изменения относительно пространства объекта. Другими словами, они всегда выполняются относительно исходной координатной системы объекта.</p>
    
    <p>Метод <codeph>prepend()</codeph> заменяет текущую матрицу добавленной в начало матрицей. Если необходимо добавить в начало две матрицы без изменения текущей матрицы, скопируйте текущую матрицу с помощью метода <codeph>clone()</codeph>, а затем примените метод <codeph>prepend()</codeph> к копии.</p>
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/append()"><linktext>append()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:recompose"><apiName>recompose</apiName><shortdesc>
    Задает параметры перемещения, поворота и масштабирования матрицы преобразования.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращает <codeph>false</codeph>, если любой из элементов масштабирования равен нулю.
    
    </apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>components</apiItemName><apiType value="Vector$flash.geom:Vector3D"/><apiDesc>Вектор из трех объектов Vector3D, заменяющих элементы перемещения, поворота и масштабирования объекта Matrix3D. 
    
    </apiDesc></apiParam><apiParam><apiItemName>orientationStyle</apiItemName><apiOperationClassifier>String</apiOperationClassifier><apiData>eulerAngles</apiData><apiDesc>Необязательный параметр, определяющий стиль ориентации, используемый для матрицы преобразования. Три типа стиля ориентации: <codeph>eulerAngles</codeph> (константа <codeph>EULER_ANGLES</codeph>), <codeph>axisAngle</codeph> (константа <codeph>AXIS_ANGLE</codeph>) и <codeph>quaternion</codeph> (константа <codeph>QUATERNION</codeph>). Для получения дополнительной информации о другом стиле ориентации см. класс <codeph>geom.Orientation3D</codeph>.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Задает параметры перемещения, поворота и масштабирования матрицы преобразования. В отличие от инкрементных изменений, выполняемых свойствами поворота экранного объекта или методами поворота объекта Matrix3D изменения, выполняемые методом <codeph>recompose()</codeph>, являются абсолютными. Метод <codeph>recompose()</codeph> перезаписывает преобразование матрицы.
    
    <p>Чтобы модифицировать преобразование матрицы с использованием абсолютной вышестоящей системой координат, получите параметры при помощи метода <codeph>decompose()</codeph> и внесите соответствующие изменения. Затем можно применить к объекту Matrix3D измененное преобразование при помощи метода <codeph>recompose()</codeph>.</p>
    
    <p>Параметр метода <codeph>recompose()</codeph> задает стиль ориентации, который использовался для преобразования. По умолчанию используется ориентация <codeph>eulerAngles</codeph>, которая определяет ориентацию с тремя различными углами поворота вокруг каждой оси. Повороты выполняются последовательно, и ось каждого поворота не изменяется. С помощью свойств поворота осей экранного объекта выполняется преобразование стиля ориентации эйлеровых углов (Euler Angles). Другими вариантами стиля ориентации являются <codeph>axisAngle</codeph> и <codeph>quaternion</codeph>. Для определения ориентации межосевых улов (Axis Angle) используется комбинация оси и угла. Ось, вокруг которой вращается объект, является единичным вектором, который представляет направление. Угол представляет величину поворота относительно вектора. Направление также определяет расположение лицевой стороны экранного объекта, а угол – направление лицевой стороны вверх. В методах <codeph>appendRotation()</codeph> и <codeph>prependRotation()</codeph> используется ориентация межосевого угла. В ориентации кватерниона используются комплексные числа и четвертый элемент вектора. Ориентация представляется тремя осями поворота (x,y,z) и углом поворота (w). В методе <codeph>interpolate()</codeph> используется кватернион.</p> 
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Orientation3D"><linktext>flash.geom.Orientation3D</linktext></link><link href="flash.geom.xml#Matrix3D/decompose()"><linktext>decompose()</linktext></link><link href="#Vector"><linktext>Вектор</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:transformVector"><apiName>transformVector</apiName><shortdesc>
    Матрица преобразования используется для преобразования объекта Vector3D из одних пространственных координат в другие.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Объект Vector3D с преобразованными координатами.
    
    </apiDesc><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>v</apiItemName><apiOperationClassifier>flash.geom:Vector3D</apiOperationClassifier><apiDesc>Объект Vector3D с координатами, которые подлежат преобразованию.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Матрица преобразования используется для преобразования объекта Vector3D из одних пространственных координат в другие. В возвращенном объекте Vector3D содержатся новые координаты, полученные после преобразования. Все преобразования матрицы, включая перемещение, применяются к объекту Vector3D.
    
    <p>Если результат метода <codeph>transformVector()</codeph> был применен к положению экранного объекта, будет изменено только положение экранного объекта. Элементы поворота и масштабирования экранного объекта не изменяются.</p> 
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/transformVectors()"><linktext>transformVectors()</linktext></link><link href="flash.geom.xml#Matrix3D/deltaTransformVector()"><linktext>deltaTransformVector()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:transformVectors"><apiName>transformVectors</apiName><shortdesc>
    Матрица преобразования используется для преобразования вектора чисел из одного пространства координат в другое.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>vin</apiItemName><apiType value="Vector$Number"/><apiDesc>Вектор чисел, в котором каждые три числа представляют трехмерную координату (x,y,z), подлежащую преобразованию.
    </apiDesc></apiParam><apiParam><apiItemName>vout</apiItemName><apiType value="Vector$Number"/><apiDesc>Вектор чисел, в котором каждые три числа представляют трехмерную преобразованную координату (x,y,z).
    
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Матрица преобразования используется для преобразования вектора чисел из одного пространства координат в другое. Метод <codeph>tranformVectors()</codeph> выполняет чтение каждой тройки чисел в объекте вектора <codeph>vin</codeph> в виде трехмерной координаты (x,y,z) и размещает преобразованную трехмерную координату в объекте вектора <codeph>vout</codeph>. Все преобразования матрицы, включая перемещение, применяются к объекту вектора <codeph>vin</codeph>. Можно использовать метод <codeph>transformVectors()</codeph> для визуализации и преобразования трехмерного объекта в виде петли. Петля – это набор вершин, определяющий форму объекта.
    
    </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D/transformVector()"><linktext>transformVector()</linktext></link><link href="flash.geom.xml#Matrix3D/deltaTransformVector()"><linktext>deltaTransformVector()</linktext></link><link href="#Vector"><linktext>Вектор</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix3D:transpose"><apiName>transpose</apiName><shortdesc>
    Преобразование текущего объекта Matrix3D в матрицу, в которой выполнена перестановка строк и столбцов.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
    Преобразование текущего объекта Matrix3D в матрицу, в которой выполнена перестановка строк и столбцов. Например, если в свойстве <codeph>rawData</codeph> текущего объекта Matrix3D содержатся следующие шестнадцать чисел – <codeph>1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34</codeph>, метод <codeph>transpose()</codeph> выполняет чтение каждых четырех элементов в виде строк и преобразует строки в столбцы. Результатом будет матрица, имеющая значения <codeph>rawData</codeph>: <codeph>1,11,21,31,2,12,22,32,3,13,23,33,4,14,24,34</codeph>. 
    
    <p>Метод <codeph>transpose()</codeph> заменяет исходную матрицу транспонированной матрицей. Если необходимо транспонировать матрицу без изменения исходной матрицы, сначала скопируйте исходную матрицу с помощью метода <codeph>clone()</codeph>, а затем примените метод <codeph>transpose()</codeph> к копии.</p>
    
    <p>Ортогональная матрица является квадратной матрицей, транспонирование которой равнозначно обращению.</p> 
    
    
    </apiDesc></apiOperationDetail></apiOperation><apiValue id="flash.geom:Matrix3D:determinant:get"><apiName>determinant</apiName><shortdesc>
    Число, которое определяет, является ли матрица обратимой.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="read"/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
    Число, которое определяет, является ли матрица обратимой. 
    
    <p>Объект Matrix3D должен быть обратимым. Свойство <codeph>determinant</codeph> можно использовать, чтобы сделать объект Matrix3D обратимым. Если определитель равен нулю, обратная матрица не существует. Например, если вся строка или весь столбец матрицы равен нулю или две строки или два столбца матрицы равны, то свойство determinant имеет нулевое значение. Определитель также используется для решения серий уравнений.</p> 
    
    <p>Только для квадратной матрицы, такой как класс Matrix3D, предусмотрен определитель.</p>
    
    </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Matrix3D/invert()"><linktext>invert()</linktext></link></related-links></apiValue><apiValue id="flash.geom:Matrix3D:position:set"><apiName>position</apiName><shortdesc>
    Объект Vector3D, в котором хранится положение, трехмерная координата (x,y,z) экранного объекта в системе координат преобразования.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:Vector3D</apiValueClassifier></apiValueDef><apiDesc>
    Объект Vector3D, в котором хранится положение, трехмерная координата (x,y,z) экранного объекта в системе координат преобразования. Свойство <codeph>position</codeph> позволяет получить немедленный доступ к вектору перемещения матрицы экранного объекта без необходимости разбиения и восстановления матрицы. 
    
    <p>С помощью свойства <codeph>position</codeph> можно получить и настроить элементы перемещения матрицы преобразования.</p>
    
    
    </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Matrix3D/appendTranslation()"><linktext>appendTranslation()</linktext></link><link href="flash.geom.xml#Matrix3D/prependTranslation()"><linktext>prependTranslation()</linktext></link></related-links></apiValue><apiValue id="flash.geom:Matrix3D:rawData:get"><apiName>rawData</apiName><shortdesc>
    Вектор из шестнадцати чисел, в котором каждые четыре элемента могут представлять строку или столбец матрицы 4x4.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiType value="Vector$Number"/></apiValueDef><apiDesc>
    Вектор из шестнадцати чисел, в котором каждые четыре элемента могут представлять строку или столбец матрицы 4x4. 
    
    <p>Исключение выдается, если свойство <codeph>rawData</codeph> задано для необратимой матрицы. Объект Matrix3D должен быть обратимым. Если требуется необратимая матрица, создайте подкласс объекта Matrix3D.</p>
    
    </apiDesc></apiValueDetail><related-links><link href="#Vector"><linktext>Вектор</linktext></link></related-links></apiValue></apiClassifier><apiClassifier id="flash.geom:Transform"><apiName>Transform</apiName><shortdesc>
 Класс Transform обеспечивает доступ к свойствам настройки цвета, а также к объектам двух- или трехмерного преобразования, которые можно применить к экранному объекту.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
 </helpid></asCustoms></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiTipTexts><apiTipText>Обеспечивает доступ к настройкам цвета, а также к объектам и матрицам двух- или трехмерного преобразования, которые можно применить к экранному объекту.
 
 </apiTipText></apiTipTexts><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
 Класс Transform обеспечивает доступ к свойствам настройки цвета, а также к объектам двух- или трехмерного преобразования, которые можно применить к экранному объекту. Во время преобразования цвет или ориентация и положение экранного объекта меняются (смещаются) относительно текущих значений или координат на новые значения или координаты. Класс Transform также собирает данные о преобразовании цвета и двухмерной матрицы, которые применяются к экранному объекту и всем его вышестощим объектам. К этим комбинированным преобразованиям можно получить доступ через свойства <codeph>concatenatedColorTransform</codeph> и <codeph>concatenatedMatrix</codeph>.
 
 <p>Для применения преобразований цвета: создайте объект ColorTransform, задайте настройки цвета, используя методы и свойства объекта, затем назначьте свойство <codeph>colorTransformation</codeph> свойства <codeph>transform</codeph> экранного объекта новому объекту ColorTransformation.</p>
 
 <p>Для применения двухмерных преобразований: создайте объект Matrix, задайте двухмерное преобразование матрицы, затем назначьте свойство <codeph>transform.matrix</codeph> экранного объекта новому объекту Matrix.</p>
 
 <p>Для применения трехмерных преобразований: начните с создания трехмерного экранного объекта. Трехмерный экранный объект имеет значение свойства <codeph>z</codeph>, отличное от нуля. Создавать объект Matrix3D не требуется. Объект Matrix3D создается автоматически для всех трехмерных объектов, когда вы присваиваете значение <codeph>z</codeph> экранному объекту. Доступ к объекту Matrix3D экранного объекта можно получить через свойство <codeph>transform</codeph> экранного объекта. При помощи методов класса Matrix3D можно добавлять новые или модифицировать существующие параметры преобразования. Можно также создать пользовательский объект Matrix3D, задать элементы преобразования пользовательского объекта Matrix3D, затем назначить новый объект Matrix3D экранному объекту при помощи свойства <codeph>transform.matrix</codeph>.</p>
 
 <p>Для модификации перспективной проекции рабочей области или корневого объекта: при помощи свойства <codeph>transform.matrix</codeph> корневого экранного объекта получите доступ к объекту PerspectiveProjection. Или примените к экранному объекту другие свойства перспективной проекции, задав свойства перспективной проекции для вышестоящего элемента экранного объекта. Нижестоящий экранный объект унаследует новые свойства. А именно, создайте объект PerspectiveProjection и задайте его свойства, затем назначьте объект PerspectiveProjection свойству <codeph>perspectiveProjection</codeph> свойства <codeph>transform</codeph> вышестоящего экранного объекта. Заданное преобразование проекции будет применено ко всем трехмерным нижестоящим элементам экранного объекта.</p>
 
 <p>Так как и объект PerspectiveProjection, и объект Matrix3D выполняют перспективные преобразования, не назначайте оба эти объекта экранному объекту одновременно. Используйте объект PerspectiveProjection для изменения фокусного расстояния и центра проекции. Для расширенного управления перспективным преобразованием создайте объект перспективной проекции Matrix3D.</p>
 
 
 </apiDesc><example conref="examples\TransformExample.as"> В следующем примере класс TransformExample используется для наклона нижней стороны спрайта, заливка которого выполнена с применением градиентного шаблона. При каждом щелчке квадрата мышью в приложении выполняется преобразование спрайта путем выполнения наклона:
 
 <ol>
  <li>Конструктор <codeph>TransformExample()</codeph> создает новый объект спрайта с именем <codeph>target</codeph>.</li>
 
  <li>Конструктор <codeph>TransformExample()</codeph> вызывает метод <codeph>draw()</codeph>, который рисует градиентный квадрат в спрайте.</li>
 
  <li>Конструктор <codeph>TransformExample()</codeph> добавляет прослушиватель событий щелчка для спрайта, который обрабатывается методом <codeph>clickHandler()</codeph>. </li>
 
     <li>Метод <codeph>clickHandler()</codeph> создает новый объект Matrix, <codeph>skewMatrix</codeph>, настроенный для применения наклона. Другая матрица, <codeph>tempMatrix</codeph>, назначается текущей матрице преобразования спрайта, а затем она комбинируется с методом <codeph>skewMatrix</codeph> с помощью метода <codeph>concat()</codeph>. Эта матрица назначается свойству <codeph>transform.matrix</codeph> квадратного спрайта. При каждом щелчке квадрата мышью вызывается метод <codeph>clickHandler()</codeph> и изменяется форма квадрата путем его наклона.  </li>
  <li>Кроме того, метод <codeph>clickHandler()</codeph> создает новый объект ColorTransform. Для свойства <codeph>redOffset</codeph> нового объекта ColorTransform задается текущее значение redOffset, увеличенное на 25. Таким же образом значение свойства <codeph>blueOffset</codeph> уменьшается на 25. При каждом щелчке цвет спрайта изменяется. </li>
  </ol>
<codeblock>
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);            
        }
    }
}
</codeblock></example></apiClassifierDetail><related-links><link href="flash.display.xml#DisplayObject/transform"><linktext>flash.display.DisplayObject.transform</linktext></link><link href="flash.geom.xml#ColorTransform"><linktext>flash.geom.ColorTransform</linktext></link><link href="flash.geom.xml#Matrix"><linktext>flash.geom.Matrix</linktext></link><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link><link href="flash.geom.xml#PerspectiveProjection"><linktext>flash.geom.PerspectiveProjection</linktext></link></related-links><apiOperation id="flash.geom:Transform:getRelativeMatrix3D"><apiName>getRelativeMatrix3D</apiName><shortdesc>
     Возвращает объект Matrix3D, который может преобразовать пространство заданного экранного объекта относительно пространства текущего экранного объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Объект Matrix3D, который можно использовать для преобразования пространства текущего экранного объекта относительно пространства экранного объекта <codeph>relativeTo</codeph>.
     
     </apiDesc><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier></apiReturn><apiParam><apiItemName>relativeTo</apiItemName><apiOperationClassifier>flash.display:DisplayObject</apiOperationClassifier><apiDesc>Экранный объект, относительно которого осуществляется преобразование. Чтобы получить объект Matrix3D относительно рабочей области, установите этот параметр на объект <codeph>root</codeph> или <codeph>stage</codeph>. Чтобы получить матрицу экранного объекта относительно мировых координат, установите этот параметр на экранный объект, к которому было применено перспективное преобразование.
         
     </apiDesc></apiParam></apiOperationDef><apiDesc>
     Возвращает объект Matrix3D, который может преобразовать пространство заданного экранного объекта относительно пространства текущего экранного объекта. Метод <codeph>getRelativeMatrix3D()</codeph> можно использовать для перемещения одного трехмерного экранного объекта относительно другого трехмерного экранного объекта. 
     
     </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link></related-links></apiOperation><apiValue id="flash.geom:Transform:colorTransform:get"><apiName>colorTransform</apiName><shortdesc>
     Объект ColorTransform содержит значения для универсальной коррекции цветов экранного объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example applies the ColorTransform object <code>blueColorTransform</code> to 
    the Transform object <code>trans</code>.  This ColorTransform converts the color of the MovieClip 
    <code>rect</code> from red to blue.
    <listing version="2.0">
    import flash.geom.Transform;
    import flash.geom.ColorTransform;
    
    var rect:MovieClip = createRectangle(20, 80, 0xFF0000);
    
    var trans:Transform = new Transform(rect);
    trace(trans.colorTransform);          
    // (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0)
    
    var blueColorTransform:ColorTransform = new ColorTransform(0, 1, 1, 1, 0, 0, 255, 0);
    
    parentTrans.colorTransform = blueColorTransform;
    trace(trans.colorTransform);          
    // (redMultiplier=0, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=255, alphaOffset=0)
    
    function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
      scope = (scope == undefined) ? this : scope;
      var depth:Number = scope.getNextHighestDepth();
      var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
    }
    </listing>
    </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:ColorTransform</apiValueClassifier><apiException><apiDesc>Объект colorTransform является нулевым при добавлении
     
    </apiDesc><apiItemName>TypeError</apiItemName><apiOperationClassifier>TypeError</apiOperationClassifier></apiException></apiValueDef><apiDesc>
     Объект ColorTransform содержит значения для универсальной коррекции цветов экранного объекта.
     
     </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#ColorTransform"><linktext>flash.geom.ColorTransform</linktext></link></related-links></apiValue><apiValue id="flash.geom:Transform:concatenatedColorTransform:get"><apiName>concatenatedColorTransform</apiName><shortdesc>
     Объект ColorTransform, представляющий объединенные преобразования цвета, применяемые к экранному объекту и всем его вышестоящим объектам, вплоть до корневого уровня.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example applies two Transform objects to both a parent and child MovieClip.
    A <code>blueColorTransform</code> is then applied to the Transform object <code>parentTrans</code> which
    adjusts the color of both parent and child MovieClips towards blue.  Notice how <code>child.concatenatedColorTransform</code> is the
    combination of <code>parentTrans</code> and <code>childTrans</code>. 
    <listing version="2.0">
    import flash.geom.Transform;
    import flash.geom.ColorTransform;
    
    var parentRect:MovieClip = createRectangle(20, 80, 0xFF0000);
    var childRect:MovieClip = createRectangle(10, 40, 0x00FF00, parentRect);
    
    var parentTrans:Transform = new Transform(parentRect);
    var childTrans:Transform = new Transform(childRect);
    
    var blueColorTransform:ColorTransform = new ColorTransform(0, 1, 1, 1, 0, 0, 255, 0);
    
    parentTrans.colorTransform = blueColorTransform;
    
    trace(childTrans.concatenatedColorTransform);     
    // (redMultiplier=0, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=255, alphaOffset=0)
    trace(childTrans.colorTransform);                 
    // (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0)
    trace(parentTrans.concatenatedColorTransform);    
    // (redMultiplier=0, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=0, greenOffset=0, blueOffset=255, alphaOffset=0)
    
    function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
      scope = (scope == undefined) ? this : scope;
      var depth:Number = scope.getNextHighestDepth();
      var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
    }
    </listing>
    </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="read"/><apiValueClassifier>flash.geom:ColorTransform</apiValueClassifier></apiValueDef><apiDesc>
     Объект ColorTransform, представляющий объединенные преобразования цвета, применяемые к экранному объекту и всем его вышестоящим объектам, вплоть до корневого уровня. Если различные преобразования цвета применены на разных уровнях, для этого свойства выполняется сцепление всех этих преобразований для создания одного объекта ColorTransform.
     
     </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#ColorTransform"><linktext>flash.geom.ColorTransform</linktext></link></related-links></apiValue><apiValue id="flash.geom:Transform:concatenatedMatrix:get"><apiName>concatenatedMatrix</apiName><shortdesc>
     Объект Matrix, представляющий объединенные матрицы преобразования экранного объекта и всех его родительских объектов, вплоть до корневого уровня.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example applies two Transform objects to a parent movie clip and to a child movie clip.
    A <code>scaleMatrix</code> is then applied to the Transform object <code>parentTrans</code> which
    scales both parent and child MovieClips.  Notice how <code>child.concatenatedMatrix</code> is the
    combination of <code>parentTrans</code> and <code>childTrans</code>. 
    
    <listing version="2.0">
    import flash.geom.Transform;
    import flash.geom.Matrix;
    
    var parentRect:MovieClip = createRectangle(20, 80, 0xFF0000);
    var childRect:MovieClip = createRectangle(10, 40, 0x00FF00, parentRect);
    
    var parentTrans:Transform = new Transform(parentRect);
    var childTrans:Transform = new Transform(childRect);
    
    var scaleMatrix:Matrix = new Matrix();
    scaleMatrix.scale(2, 2);
    
    parentTrans.matrix = scaleMatrix;
    
    trace(childTrans.concatenatedMatrix);     // (a=2, b=0, c=0, d=2, tx=0, ty=0)
    trace(childTrans.matrix);                 // (a=1, b=0, c=0, d=1, tx=0, ty=0)
    trace(parentTrans.concatenatedMatrix);    // (a=2, b=0, c=0, d=2, tx=0, ty=0)
    
    function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
      scope = (scope == undefined) ? this : scope;
      var depth:Number = scope.getNextHighestDepth();
      var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
    }
    </listing>
    </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="read"/><apiValueClassifier>flash.geom:Matrix</apiValueClassifier></apiValueDef><apiDesc>
     Объект Matrix, представляющий объединенные матрицы преобразования экранного объекта и всех его родительских объектов, вплоть до корневого уровня. Если различные матрицы преобразования применены на разных уровнях, для этого свойства выполняется сцепление этих матриц в одну матрицу. Также, для выполняемого в обозревателе содержимого SWF, размер которого можно изменить, это свойство является показателем разницы между координатами рабочей области и координатами окна при изменении размера окна. Таким образом, это свойство преобразует локальные координаты в координаты окна, которые могут не совпадать с пространством координат объекта Stage.
     
     </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Transform:matrix3D:get"><apiName>matrix3D</apiName><shortdesc>
     Обеспечивает доступ к объекту Matrix3D трехмерного экранного объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:Matrix3D</apiValueClassifier></apiValueDef><apiDesc>
     Обеспечивает доступ к объекту Matrix3D трехмерного экранного объекта. Класс Matrix3D представляет матрицу преобразования, которая определяет положение и ориентацию экранного объекта. Кроме того, класс Matrix3D позволяет выполнять перспективную проекцию.
     
     <p>Если свойству <codeph>matrix</codeph> задано значение (не <codeph>null</codeph>), свойство <codeph>matrix3D</codeph> имеет значение <codeph>null</codeph>. Если свойству <codeph>matrix3D</codeph> задано значение (не <codeph>null</codeph>), свойство <codeph>matrix</codeph> имеет значение <codeph>null</codeph>.</p>
     
     </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link></related-links></apiValue><apiValue id="flash.geom:Transform:matrix:get"><apiName>matrix</apiName><shortdesc>
     Объект Matrix, содержащий значения, влияющие на масштабирование, поворот и перемещение экранного объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example applies the Matrix object <code>scaleMatrix</code> to the Transform
     object <code>trans</code>.  This Matrix scales the MovieClip <code>rect</code> by a factor of two.
     <listing version="2.0">
     import flash.geom.Transform;
     import flash.geom.Matrix;
     
     var rect:MovieClip = createRectangle(20, 80, 0xFF0000);
     
     var trans:Transform = new Transform(rect);
     trace(trans.matrix);         // (a=1, b=0, c=0, d=1, tx=0, ty=0)
          
     var scaleMatrix:Matrix = new Matrix();
     scaleMatrix.scale(2, 2);
     
     trans.matrix = scaleMatrix;
     trace(trans.matrix);         // (a=2, b=0, c=0, d=2, tx=0, ty=0)
     
     function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
      scope = (scope == undefined) ? this : scope;
      var depth:Number = scope.getNextHighestDepth();
      var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
     }
    </listing>
    </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:Matrix</apiValueClassifier><apiException><apiDesc>Матрица является нулевой при добавлении
     
     </apiDesc><apiItemName>TypeError</apiItemName><apiOperationClassifier>TypeError</apiOperationClassifier></apiException></apiValueDef><apiDesc>
     Объект Matrix, содержащий значения, влияющие на масштабирование, поворот и перемещение экранного объекта.
     
     <p>Если свойству <codeph>matrix</codeph> задано значение (не <codeph>null</codeph>), свойство <codeph>matrix3D</codeph> имеет значение <codeph>null</codeph>. Если свойству <codeph>matrix3D</codeph> задано значение (не <codeph>null</codeph>), свойство <codeph>matrix</codeph> имеет значение <codeph>null</codeph>.</p>
     
     </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Matrix"><linktext>flash.geom.Matrix</linktext></link></related-links></apiValue><apiValue id="flash.geom:Transform:perspectiveProjection:get"><apiName>perspectiveProjection</apiName><shortdesc>
     Обеспечивает доступ к объекту PerspectiveProjection трехмерного экранного объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:PerspectiveProjection</apiValueClassifier></apiValueDef><apiDesc>
     Обеспечивает доступ к объекту PerspectiveProjection трехмерного экранного объекта. При помощи объекта PerspectiveProjection можно модифицировать перспективное преобразование рабочей области или назначать перспективное преобразование всем трехмерным нижестоящим элементам экранного объекта.
     
     <p>Объект PerspectiveProjection по умолчанию назначается корневому объекту на основе поля обзора и соотношения сторон (размеров) рабочей области.</p>
     
     </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#PerspectiveProjection"><linktext>flash.geom.PerspectiveProjection</linktext></link></related-links></apiValue><apiValue id="flash.geom:Transform:pixelBounds:get"><apiName>pixelBounds</apiName><shortdesc>
     Объект Rectangle, определяющий ограничительный прямоугольник экранного объекта в рабочей области.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates a Transform object <code>trans</code> and traces out
    its <code>pixelBounds</code>.  Notice that pixel bounds returns a bounding box with values 
    equal to MovieClip's <code>getBounds()</code> and <code>getRect()</code> methods.
    <listing version="2.0">
    import flash.geom.Transform;
    
    var rect:MovieClip = createRectangle(20, 80, 0xFF0000);
    var trans:Transform = new Transform(rect);
    trace(trans.pixelBounds);         // (x=0, y=0, w=20, h=80)
    
    var boundsObj:Object = rect.getBounds();
    trace(boundsObj.xMin);            // 0
    trace(boundsObj.yMin);            // 0
    trace(boundsObj.xMax);            // 20
    trace(boundsObj.yMax);            // 80
    
    var rectObj:Object = rect.getRect();
    trace(rectObj.xMin);              // 0
    trace(rectObj.yMin);              // 0
    trace(rectObj.xMax);              // 20
    trace(rectObj.yMax);              // 80
    
    function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
      scope = (scope == undefined) ? this : scope;
      var depth:Number = scope.getNextHighestDepth();
      var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
    }
    </listing>
    </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="read"/><apiValueClassifier>flash.geom:Rectangle</apiValueClassifier></apiValueDef><apiDesc>
     Объект Rectangle, определяющий ограничительный прямоугольник экранного объекта в рабочей области.
     
     </apiDesc></apiValueDetail></apiValue></apiClassifier><apiClassifier id="flash.geom:Matrix"><apiName>Matrix</apiName><shortdesc>
 Класс Matrix представляет матрицу преобразования, определяющую способ сопоставления точек из одного пространства координат с точками в другом пространстве координат.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
 
 </helpid></asCustoms></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiTipTexts><apiTipText>Стандартный класс двумерных однородных матриц.
 
 </apiTipText></apiTipTexts><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
 Класс Matrix представляет матрицу преобразования, определяющую способ сопоставления точек из одного пространства координат с точками в другом пространстве координат. Можно выполнять различные графические преобразования экранного объекта путем задания свойств объекта Matrix, применения этого объекта Matrix к свойству <codeph>matrix</codeph> объекта Transform и последующего применения объекта Transform в качестве свойства <codeph>transform</codeph> к экранному объекту. Эти функции преобразования включают перемещение (изменение положения осей <i>x</i> и <i>y</i>), поворот, масштабирование и наклон. 
 
 <p>Все эти преобразования называются <i>аффинные преобразования</i>. При аффинных преобразованиях сохраняется прямолинейность линий, поэтому параллельные линии остаются параллельными.</p>
 
 <p>Чтобы применить матрицу преобразования к экранному объекту, необходимо создать объект Transform, настроить его свойство <codeph>matrix</codeph> для матрицы преобразования, а затем настроить свойство <codeph>transform</codeph> экранного объекта для объекта Transform. Объекты матрицы также используются как параметры в некоторых методах, например:</p>
 
 <ul>
 
 <li>метод <codeph>draw()</codeph> объекта BitmapData;</li>
 
 <li>метод <codeph>beginBitmapFill()</codeph>, <codeph>beginGradientFill()</codeph> или <codeph>lineGradientStyle()</codeph> объекта Graphics.</li>
 
 </ul>
 
 <p>Объект матрицы преобразования является матрицей размерностью 3x3 со следующим содержимым:</p>
 
 <p><adobeimage alt="Свойства класса матрицы в матричном представлении" href="../../images/matrix_props1.jpg"/></p>
 
 <p>В традиционных матрицах преобразования свойства <codeph>u</codeph>, <codeph>v</codeph> и <codeph>w</codeph> предоставляют дополнительные возможности. Класс Matrix можно использовать только в двухмерном пространстве, поэтому при его использовании всегда подразумевается, что значения свойств <codeph>u</codeph> и <codeph>v</codeph> равны 0,0; значение свойства <codeph>w</codeph> равно 1,0. Эффективными значениями матрицы являются:</p>
 
 <p><adobeimage alt="Свойства класса матрицы в матричном представлении, отображающие предполагаемые значения u, v и w" href="../../images/matrix_props2.jpg"/></p>
 
 <p>Можно получить и настроить значения остальных шести свойств объекта Matrix: <codeph>a</codeph>, <codeph>b</codeph>, <codeph>c</codeph>, <codeph>d</codeph>, <codeph>tx</codeph> и <codeph>ty</codeph>.</p>
 
 <p>Класс Matrix поддерживает четыре основных типа преобразований: перемещение, масштабирование, поворот и наклон. С помощью специальных методов можно настроить три из перечисленных преобразования, как описано в следующей таблице: </p>
 
 <adobetable class="innertable">
   
   
   
   
   
 <tgroup cols="5"><thead><row><entry>Преобразование</entry><entry>Метод</entry><entry>Значения матрицы</entry><entry>Отображаемый результат</entry><entry>Описание</entry></row></thead><tbody><row valign="top">
  <entry>Перемещение (перестановка)</entry>
  <entry outputclass="nowrap"><codeph>translate(tx, ty)</codeph> </entry>
  <entry><adobeimage alt="Матричная запись параметров метода перемещения" height="104" href="../../images/matrix_translate.jpg" width="150"/></entry>
  <entry><adobeimage alt="Иллюстрация эффектов метода перемещения" height="91" href="../../images/matrix_translate_image.jpg" width="111"/></entry>
  <entry>Перемещение пикселей <codeph>tx</codeph> изображения вправо, а пикселей <codeph>ty</codeph> вниз.</entry>
   </row><row valign="top">
  <entry>Масштабирование</entry>
  <entry><codeph>scale(sx, sy)</codeph></entry>
  <entry><adobeimage alt="Матричная запись параметров метода масштабирования" height="105" href="../../images/matrix_scale.jpg" width="140"/></entry>
  <entry><adobeimage alt="Иллюстрация эффектов метода масштабирования" height="84" href="../../images/matrix_scale_image.jpg" width="111"/></entry>
  <entry>Изменение размера изображения, умножение расположения каждого пиксела на величину <codeph>sx</codeph> по оси <i>x</i> и <codeph>sy</codeph> по оси <i>y</i>.</entry>
   </row><row valign="top">
  <entry>Поворот</entry>
  <entry><codeph>rotate(q)</codeph></entry>
  <entry><adobeimage alt="Матричная запись свойств метода поворота" height="105" href="../../images/matrix_rotate.jpg" width="219"/></entry>
  <entry><adobeimage alt="Иллюстрация эффектов метода поворота" height="91" href="../../images/matrix_rotate_image.jpg" width="111"/></entry>
  <entry>Поворот изображения на угол <codeph>q</codeph>, который измеряется в радианах.</entry>
   </row><row valign="top">
  <entry>Наклон или сдвиг </entry>
  <entry>Нет; необходимо настроить свойства <codeph>b</codeph> и <codeph>c</codeph></entry>
  <entry><adobeimage alt="Матричная запись свойств функции наклона" href="../../images/matrix_skew.jpg"/></entry>
  <entry><adobeimage alt="Иллюстрация эффектов функции наклона" height="77" href="../../images/matrix_skew_image.jpg" width="111"/></entry>
  <entry>Постепенный сдвиг изображения параллельно оси <i>x</i> или <i>y</i>. Свойство <codeph>b</codeph> объекта Matrix представляет тангенс угла наклона по оси <i>y</i>; свойство <codeph>c</codeph> объекта Matrix представляет тангенс угла наклона по оси <i>x</i>.</entry>
   </row></tbody></tgroup></adobetable>
 <p>Каждая функция преобразования изменяет текущие свойства матрицы, поэтому можно эффективно комбинировать несколько преобразований. Для этого необходимо вызвать несколько функций преобразования перед применением матрицы к целевому экранному объекту (при использовании свойства <codeph>transform</codeph> этого экранного объекта).</p>
 
 <p>Используйте конструктор <codeph>new Matrix()</codeph> для создания объекта Matrix перед вызовом методов объекта Matrix.</p>
 
 </apiDesc><example conref="examples\MatrixExample.as"> В следующем примере показано, как можно использовать класс <codeph>MatrixExample</codeph> для создания большого квадрата с градиентной заливкой. Это можно сделать, выполнив следующие действия:
 <ol>
     <li>В приложении создается новый объект Matrix с именем <codeph>myMatrix</codeph> и используется метод <codeph>trace()</codeph> для вывода значений свойств по умолчанию для объекта <codeph>myMatrix</codeph>.</li>
     <li>В приложении вызывается метод <codeph>createGradientBox()</codeph> с параметрами <codeph>width</codeph> и <codeph>height</codeph>, равными 200 пикселям, отсутствием вращения и расстоянием для перемещения вдоль осей <i>x</i> и <i>y</i>, равным 50 пикселям.</li>
     <li>В приложении осуществляется повторная печать объекта <codeph>myMatrix</codeph> для отображения изменения после вызова метода <codeph>createGradientBox()</codeph>.</li>
     <li>Для управления процессом заливкой градиентного прямоугольника в приложении настраиваются три переменные:
     <ul>
         <li><codeph>colors</codeph>: задает плавные цветовые переходы - от сплошного красного до сплошного синего.</li>
         <li><codeph>alphas</codeph>: задает непрозрачность сплошной заливки.</li>
         <li><codeph>ratios</codeph>: задает распределение цветов, равное для красного и синего цветов.</li>
  </ul></li>
     <li>В приложении вызывается графический метод <codeph>beginGradientFill()</codeph>, который обрабатывает объект <codeph>myMatrix</codeph> и вызывает метод <codeph>lineTo()</codeph>, после выполнения которого создается прямоугольник с градиентной заливкой.</li>
 </ol>
<codeblock>
package {
    import flash.geom.Matrix;
    import flash.display.Sprite;
    import flash.display.GradientType;

    public class MatrixExample extends Sprite {

        public function MatrixExample() {
            var myMatrix:Matrix = new Matrix();
            trace(myMatrix.toString());    // (a=1, b=0, c=0, d=1, tx=0, ty=0)

            myMatrix.createGradientBox(200, 200, 0, 50, 50);
            trace(myMatrix.toString());    // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150)

            var colors:Array = [0xFF0000, 0x0000FF];
            var alphas:Array = [1, 1];
            var ratios:Array = [0, 0xFF];
            graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix);
            graphics.lineTo(0, 300);
            graphics.lineTo(300, 300);
            graphics.lineTo(300, 0);
            graphics.lineTo(0, 0);
        }
    }
}
</codeblock></example></apiClassifierDetail><related-links><link href="flash.display.xml#DisplayObject/transform"><linktext>flash.display.DisplayObject.transform</linktext></link><link href="flash.geom.xml#Transform"><linktext>flash.geom.Transform</linktext></link><link href="flash.display.xml#BitmapData/draw()"><linktext>flash.display.BitmapData.draw()</linktext></link><link href="flash.display.xml#Graphics/beginBitmapFill()"><linktext>flash.display.Graphics.beginBitmapFill()</linktext></link><link href="flash.display.xml#Graphics/beginGradientFill()"><linktext>flash.display.Graphics.beginGradientFill()</linktext></link><link href="flash.display.xml#Graphics/lineGradientStyle()"><linktext>flash.display.Graphics.lineGradientStyle()</linktext></link></related-links><apiConstructor id="flash.geom:Matrix:Matrix"><apiName>Matrix</apiName><shortdesc>
    Создает новый объект Matrix с заданными параметрами.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
    
	</helpid></asCustoms></prolog><apiConstructorDetail><apiConstructorDef><apiAccess value="public"/><apiParam><apiItemName>a</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>1</apiData><apiDesc>Значение, от которого зависит размещение пикселей вдоль оси <i>x</i> при масштабировании или повороте изображения.
    </apiDesc></apiParam><apiParam><apiItemName>b</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Значение, от которого зависит размещение пикселей вдоль оси <i>y</i> при повороте или наклоне изображения.
    </apiDesc></apiParam><apiParam><apiItemName>c</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Значение, от которого зависит размещение пикселей вдоль оси <i>x</i> при повороте или наклоне изображения.
    </apiDesc></apiParam><apiParam><apiItemName>d</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>1</apiData><apiDesc>Значение, от которого зависит размещение пикселей вдоль оси <i>y</i> при масштабировании или повороте изображения.
    </apiDesc></apiParam><apiParam><apiItemName>tx</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Расстояние, на которое перемещается каждая точка вдоль оси <i>x</i>.
    </apiDesc></apiParam><apiParam><apiItemName>ty</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Расстояние, на которое перемещается каждая точка вдоль оси <i>y</i>.
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Создает новый двухмерный объект Matrix.
    
    </apiTipText></apiTipTexts></apiConstructorDef><apiDesc>
    Создает новый объект Matrix с заданными параметрами. В матричном представлении свойства упорядочиваются следующим образом:
    
    <p><adobeimage alt="Свойства класса матрицы в матричном представлении, отображающие предполагаемые значения u, v и w" href="../../images/matrix_props2.jpg"/></p>
    
    <p>Если в конструкторе <codeph>new Matrix()</codeph> не указаны параметры, он создает <i>единичную матрицу</i> со следующими значениями:</p>
    <adobetable class="innertable">
    
    
    
    <tgroup cols="2"><tbody><row>
      <entry><pre>a = 1</pre></entry>
      <entry><pre>b = 0</pre></entry>
    </row><row>
      <entry><pre>c = 0</pre></entry>
      <entry><pre>d = 1</pre></entry>
    </row><row>
      <entry><pre>tx = 0</pre></entry>
      <entry><pre>ty = 0</pre></entry>
    </row></tbody></tgroup></adobetable>
    <p>В матричном представлении единичная матрица имеет следующий вид:</p>
    
    <p><adobeimage alt="Свойства класса матрицы в матричном представлении" href="../../images/matrix_identity.jpg"/></p>
    
    </apiDesc><example conref="examples\Matrix.1.as"> В следующем примере матрица <codeph>matrix_1</codeph> создается без передачи параметров в конструктор <codeph>Matrix()</codeph>, а матрица <codeph>matrix_2</codeph> с передачей параметров. Обратите внимание, что матрица <codeph>matrix_1</codeph>, которая была создана без параметров, является единичной матрицей со значениями <codeph>a</codeph>=1, <codeph>b</codeph>=0, <codeph>c</codeph>=0, <codeph>d</codeph>=1, <codeph>tx</codeph>=0, <codeph>ty</codeph>=0.
<codeblock>
import flash.geom.Matrix;

var matrix_1:Matrix = new Matrix();
trace(matrix_1);  // (a=1, b=0, c=0, d=1, tx=0, ty=0)

var matrix_2:Matrix = new Matrix(1, 2, 3, 4, 5, 6);
trace(matrix_2);  // (a=1, b=2, c=3, d=4, tx=5, ty=6)
</codeblock></example></apiConstructorDetail></apiConstructor><apiOperation id="flash.geom:Matrix:clone"><apiName>clone</apiName><shortdesc>
    Возвращает новый объект Matrix, который является клоном данной матрицы с точной копией содержащегося в ней объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates <code>clonedMatrix</code> from <code>myMatrix</code>.
    Notice that the Matrix class does not have an equals method, so the following example
    uses a custom written function to test the equality of two Matricies.
    
    <listing version="2.0">
    import flash.geom.Matrix;
       
    var myMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0);
    var clonedMatrix:Matrix = new Matrix();
    
    trace(myMatrix);                        // (a=2, b=0, c=0, d=2, tx=0, ty=0)
    trace(clonedMatrix);                    // (a=1, b=0, c=0, d=1, tx=0, ty=0)
    trace(equals(myMatrix, clonedMatrix));  // false
    
    clonedMatrix = myMatrix.clone(); 
    
    trace(myMatrix);                        // (a=2, b=0, c=0, d=2, tx=0, ty=0)
    trace(clonedMatrix);                    // (a=2, b=0, c=0, d=2, tx=0, ty=0)
    trace(equals(myMatrix, clonedMatrix));  // true
    
    function equals(m1:Matrix, m2:Matrix):Boolean {
        return m1.toString() == m2.toString();
    }
    </listing>
     </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Объект Matrix.
    
    </apiDesc><apiOperationClassifier>flash.geom:Matrix</apiOperationClassifier></apiReturn><apiTipTexts><apiTipText>Возвращает новый объект Matrix, который является копией текущей матрицы.
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    Возвращает новый объект Matrix, который является клоном данной матрицы с точной копией содержащегося в ней объекта.
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:concat"><apiName>concat</apiName><shortdesc>
    Сцепляет матрицу с текущей матрицей, фактически объединяя геометрические искажения двух матриц.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates three Matricies that define transformations for
    three rectangle MovieClips.  The first two Matricies <code>rotate45Matrix</code>
    and <code>doubleScaleMatrix</code> are applied to the two rectangles 
    <code>rectangleMc_1</code> and <code>rectangleMc_2</code>.  Then, the third
    Matrix is created using the <code>concat()</code> method on <code>rotate45Matrix</code> and 
    <code>doubleScaleMatrix</code> to create <code>scaleAndRotateMatrix</code>. 
    This Matrix is then applied to <code>rectangleMc_3</code> to scale and rotate it.
    
    <listing version="2.0">
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    var rectangleMc_0:MovieClip = createRectangle(20, 80, 0x000000);
    var rectangleMc_1:MovieClip = createRectangle(20, 80, 0xFF0000);   
    var rectangleMc_2:MovieClip = createRectangle(20, 80, 0x00FF00);   
    var rectangleMc_3:MovieClip = createRectangle(20, 80, 0x0000FF);
    
    var rectangleTrans_1:Transform = new Transform(rectangleMc_1);
    var rectangleTrans_2:Transform = new Transform(rectangleMc_2);
    var rectangleTrans_3:Transform = new Transform(rectangleMc_3);
    
    var rotate45Matrix:Matrix = new Matrix();
    rotate45Matrix.rotate(Math.PI/4);
    rectangleTrans_1.matrix = rotate45Matrix;
    rectangleMc_1._x = 100;
    trace(rotate45Matrix.toString());    // (a=0.707106781186548, b=0.707106781186547, c=-0.707106781186547, d=0.707106781186548, tx=0, ty=0)
    
    var doubleScaleMatrix:Matrix = new Matrix();
    doubleScaleMatrix.scale(2, 2);
    rectangleTrans_2.matrix = doubleScaleMatrix;
    rectangleMc_2._x = 200;
    trace(doubleScaleMatrix.toString());  // (a=2, b=0, c=0, d=2, tx=0, ty=0)
    
    var scaleAndRotateMatrix:Matrix = doubleScaleMatrix.clone();
    scaleAndRotateMatrix.concat(rotate45Matrix);
    rectangleTrans_3.matrix = scaleAndRotateMatrix;
    rectangleMc_3._x = 300;
    trace(scaleAndRotateMatrix.toString());   // (a=1.4142135623731, b=1.41421356237309, c=-1.41421356237309, d=1.4142135623731, tx=0, ty=0)
    
    function createRectangle(width:Number, height:Number, color:Number):MovieClip {
        var depth:Number = this.getNextHighestDepth();
        var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
        mc.beginFill(color);
        mc.lineTo(0, height);
        mc.lineTo(width, height);
        mc.lineTo(width, 0);
        mc.lineTo(0, 0);
        return mc;
    }
    
    </listing>
    
    </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>m</apiItemName><apiOperationClassifier>flash.geom:Matrix</apiOperationClassifier><apiDesc>Матрица, которая будет сцеплена с исходной матрицей.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Сцепляет матрицу с текущей матрицей, фактически объединяя геометрические искажения двух матриц. В математическом представлении сцепление двух матриц равнозначно сложению матриц с использованием умножения.
    
    <p>Например, если матрица <codeph>m1</codeph> масштабирует объект с использованием коэффициента, равного четырем, а матрица <codeph>m2</codeph> поворачивает объект на 1,5707963267949 радиан (<codeph>Math.PI/2</codeph>), то <codeph>m1.concat(m2)</codeph> преобразует <codeph>m1</codeph> в матрицу, которая выполняет масштабирование объекта с коэффициентом, равным четырем, и поворачивает объект на <codeph>Math.PI/2</codeph> радиан. </p>
    
    <p>Этот метод заменяет исходную матрицу сцепленной матрицей. Если необходимо выполнить сцепление двух матриц без изменения этих двух исходных матриц, сначала скопируйте исходную матрицу с помощью метода <codeph>clone()</codeph>, как показано в разделе примеров классов.</p>
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:createBox"><apiName>createBox</apiName><shortdesc>
     Включает параметры для масштабирования, поворота и перемещения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
     
     </helpid></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>scaleX</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент масштабирования по горизонтали. 
     
     </apiDesc></apiParam><apiParam><apiItemName>scaleY</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент масштабирования по вертикали. 
     
     </apiDesc></apiParam><apiParam><apiItemName>rotation</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Угол поворота (в радианах). 
     
     </apiDesc></apiParam><apiParam><apiItemName>tx</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Число пикселей для перемещения вправо вдоль оси <i>x</i>. 
     
     </apiDesc></apiParam><apiParam><apiItemName>ty</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Число пикселей для перемещения вниз вдоль оси <i>y</i>.  
     
     </apiDesc></apiParam><apiTipTexts><apiTipText>Создает объект Matrix со значениями масштабирования, поворота и преобразования.
     
     </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
     Включает параметры для масштабирования, поворота и перемещения. При применении к матрице задает матричные значения на основе этих параметров.
     
     <p>С помощью метода <codeph>createBox()</codeph> можно получить такую же матрицу, как и с помощью последовательного применения методов <codeph>identity()</codeph>, <codeph>rotate()</codeph>, <codeph>scale()</codeph> и <codeph>translate()</codeph>. Например, запись <codeph>mat1.createBox(2,2,Math.PI/4, 100, 100)</codeph> аналогичная следующей записи:</p>
     
     <codeblock platform="actionscript">
     import flash.geom.Matrix;
     
     var mat1:Matrix = new Matrix();
     mat1.identity();
     mat1.rotate(Math.PI/4);
     mat1.scale(2,2);
     mat1.translate(10,20);
     </codeblock>
     
     <codeblock platform="javascript">
     var mat1 = new air.Matrix();
     mat1.identity();
     mat1.rotate(Math.PI/4);
     mat1.scale(2, 2);
     mat1.translate(10, 20);
     </codeblock>
     
     </apiDesc><example conref="examples\Matrix_createBox.as"> В следующем примере значения масштаба по оси x, масштаба по оси y, поворота, расположения по оси x и y объекта <codeph>myMatrix</codeph> задаются вызовом его метода <codeph>createBox()</codeph>.
<codeblock>

package
{
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    public class Matrix_createBox extends Sprite
    {
        public function Matrix_createBox()
        {
             var myMatrix:Matrix = new Matrix();
             trace(myMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
             myMatrix.createBox(1, 2, Math.PI/4, 50, 100);
             trace(myMatrix.toString());  
             // (a=0.7071067811865476, b=1.414213562373095, c=-0.7071067811865475, 
             //  d=1.4142135623730951, tx=100, ty=200)
             
             var rectangleShape:Shape = createRectangle(20, 80, 0xFF0000);   
             addChild(rectangleShape);
              
             var rectangleTrans:Transform = new Transform(rectangleShape);
             rectangleTrans.matrix = myMatrix;
        }
        
        public function createRectangle(w:Number, h:Number, color:Number):Shape 
        {
            var rect:Shape = new Shape();
            rect.graphics.beginFill(color);
            rect.graphics.drawRect(0, 0, w, h);
            addChild(rect);
            return rect;
        }
    }
}
</codeblock></example></apiOperationDetail><related-links><link href="flash.display.xml#Graphics/beginBitmapFill()"><linktext>flash.display.Graphics.beginBitmapFill()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix:createGradientBox"><apiName>createGradientBox</apiName><shortdesc>
     Создает особый стиль матрицы, ожидаемый методом beginGradientFill() и lineGradientStyle класса Graphics.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><category>Method
     
     </category></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>width</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Ширина градиентного прямоугольника.
     
     </apiDesc></apiParam><apiParam><apiItemName>height</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Высота градиентного прямоугольника.
     
     </apiDesc></apiParam><apiParam><apiItemName>rotation</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Угол поворота (в радианах). 
     
     </apiDesc></apiParam><apiParam><apiItemName>tx</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Расстояние перемещения (в пикселях) вправо вдоль оси <i>x</i>. Это значение является коррекцией с половинным значением параметра <codeph>width</codeph>. 
     
     </apiDesc></apiParam><apiParam><apiItemName>ty</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Расстояние перемещения (в пикселях) вниз по оси <i>y</i>. Это значение является коррекцией с половинным значением параметра <codeph>height</codeph>. 
     
     </apiDesc></apiParam><apiTipTexts><apiTipText>Создает особый стиль матрицы, ожидаемый методом beginGradientFill() класса Graphics.
     
     </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
     Создает особый стиль матрицы, ожидаемый методом <codeph>beginGradientFill()</codeph> и <codeph>lineGradientStyle</codeph> класса Graphics. Ширина и высота масштабируются до пары <codeph>scaleX</codeph>/<codeph>scaleY</codeph>, а значения <codeph>tx</codeph>/<codeph>ty</codeph> являются коррекцией с половинными значениями ширины и высоты.
     
     <p>Например, рассмотрим градиент со следующими характеристиками:</p>
     
     <ul>
     
     <li><codeph>GradientType.LINEAR</codeph></li>
     <li>Два цвета (зеленый и синий) с массивом коэффициентов <codeph>[0, 255]</codeph></li>
     <li><codeph>SpreadMethod.PAD</codeph></li>
     <li><codeph>InterpolationMethod.LINEAR_RGB</codeph></li>
     
     </ul>
     
     <p>В следующем примере показаны градиенты, в которых матрица была определена с помощью метода <codeph>createGradientBox()</codeph> с различными настройками параметров:</p>
     
     <adobetable class="innertable">
     
      
     
     
     
     
     
     
     
     
     
     <tgroup cols="2"><thead><row><entry>Параметры <codeph>createGradientBox()</codeph></entry><entry>Итоговый градиент</entry></row></thead><tbody><row>
     
      <entry><pre>width = 25;
     height = 25; 
     rotation = 0; 
     tx = 0; 
     ty = 0;</pre></entry>
     
     <entry align="center"><adobeimage alt="итоговый линейный градиент" href="../../images/createGradientBox-1.jpg"/></entry>
     
     </row><row>
     
      <entry><pre>width = 25; 
     height = 25; 
     rotation = 0; 
     tx = 25; 
     ty = 0;</pre></entry>
     
     <entry align="center"><adobeimage alt="итоговый линейный градиент" href="../../images/createGradientBox-2.jpg"/></entry>
     
     </row><row>
     
      <entry><pre>width = 50; 
     height = 50; 
     rotation = 0; 
     tx = 0; 
     ty = 0;</pre></entry>
     
     <entry align="center"><adobeimage alt="итоговый линейный градиент" href="../../images/createGradientBox-3.jpg"/></entry>
     
     </row><row>
     
      <entry><pre>width = 50;
     height = 50; 
     rotation = Math.PI / 4; // 45 degrees
     tx = 0; 
     ty = 0;</pre></entry>
     
     <entry align="center"><adobeimage alt="итоговый линейный градиент" href="../../images/createGradientBox-4.jpg"/></entry>
     
     </row></tbody></tgroup></adobetable>
     
     </apiDesc><example conref="examples\Matrix_createGradientBox.as"> В следующем примере значения масштаба по оси x, масштаба по оси y, поворота, расположения по оси x и y объекта <codeph>myMatrix</codeph> задаются вызовом его метода <codeph>createBox()</codeph>.
<codeblock>

package
{
    import flash.display.GradientType;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    
    public class Matrix_createGradientBox extends Sprite
    {
        public function Matrix_createGradientBox()
        {
             var myMatrix:Matrix = new Matrix();
             trace(myMatrix.toString());          // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
             myMatrix.createGradientBox(200, 200, 0, 50, 50);
             trace(myMatrix.toString());          // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150)
             
             var colors:Array = [0xFF0000, 0x0000FF];
             var alphas:Array = [100, 100];
             var ratios:Array = [0, 0xFF];
             
             this.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix);
             this.graphics.drawRect(0, 0, 300, 200);
        }
    }
}
</codeblock></example></apiOperationDetail><related-links><link href="flash.display.xml#Graphics/beginGradientFill()"><linktext>flash.display.Graphics.beginGradientFill()</linktext></link><link href="flash.display.xml#Graphics/lineGradientStyle()"><linktext>flash.display.Graphics.lineGradientStyle()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Matrix:deltaTransformPoint"><apiName>deltaTransformPoint</apiName><shortdesc>
    Для точки в пространстве координат до преобразования возвращает ее координаты после преобразования.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example uses the <code>deltaTransformPoint()</code> method 
    to create <code>deltaTransformedPoint</code> from <code>myPoint</code>.  Notice that
    the <code>translate()</code> method has no affect on the position of <code>deltaTransformedPoint</code>.
    In the example, however, <code>scale()</code> does affect the position.  It
    increases the original <code>x</code> value by a factor of three from 50 to 150.
    
    <listing version="2.0">
    import flash.geom.Matrix;
    import flash.geom.Point;
    
    var myMatrix:Matrix = new Matrix();
    trace(myMatrix);  // (a=1, b=0, c=0, d=1, tx=0, ty=0)
    
    myMatrix.translate(100, 0);
    trace(myMatrix);  // (a=1, b=0, c=0, d=1, tx=100, ty=0)
    
    myMatrix.scale(3, 3);
    trace(myMatrix);  // (a=3, b=0, c=0, d=3, tx=300, ty=0)
    
    var myPoint:Point = new Point(50,0);
    trace(myPoint);   // (50, 0)              
    
    var deltaTransformedPoint:Point = myMatrix.deltaTransformPoint(myPoint);
    trace(deltaTransformedPoint); // (150, 0)
    
    var pointMc_0:MovieClip = createRectangle(10, 10, 0xFF0000);
    pointMc_0._x = myPoint.x;
    
    var pointMc_1:MovieClip = createRectangle(10, 10, 0x00FF00);
    pointMc_1._x = deltaTransformedPoint.x;
    
    function createRectangle(width:Number, height:Number, color:Number):MovieClip {
      var depth:Number = this.getNextHighestDepth();
      var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
    }
    </listing>
    </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Точка, полученная в результате применения преобразования матрицы.
    
    </apiDesc><apiOperationClassifier>flash.geom:Point</apiOperationClassifier></apiReturn><apiParam><apiItemName>point</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Точка, для которой необходимо получить результат преобразования матрицы.
    
    </apiDesc></apiParam></apiOperationDef><apiDesc>
    Для точки в пространстве координат до преобразования возвращает ее координаты после преобразования. В отличие от стандартного преобразования, применяемого с помощью метода <codeph>transformPoint()</codeph>, в преобразовании методом <codeph>deltaTransformPoint()</codeph> не учитываются параметры перемещения <codeph>tx</codeph> и <codeph>ty</codeph>.
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:identity"><apiName>identity</apiName><shortdesc>
    Задает каждому свойству матрицы значение, приводящее к нулевому преобразованию.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><category>Method
    </category></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
    Задает каждому свойству матрицы значение, приводящее к нулевому преобразованию. Объект, преобразованный с применением единичной матрицы, идентичен исходному объекту.
    
    <p>После вызова метода <codeph>identity()</codeph> в получившейся в результате матрице записаны следующие свойства: <codeph>a</codeph>=1, <codeph>b</codeph>=0, <codeph>c</codeph>=0, <codeph>d</codeph>=1, <codeph>tx</codeph>=0, <codeph>ty</codeph>=0.</p>
    
    <p>В матричном представлении единичная матрица имеет следующий вид:</p>
    
    <p><adobeimage alt="Свойства класса матрицы в матричном представлении" href="../../images/matrix_identity.jpg"/></p>
    
    </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:invert"><apiName>invert</apiName><shortdesc>
     Выполняет обратное преобразование исходной матрицы.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
     
     </helpid></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
     Выполняет обратное преобразование исходной матрицы. Можно применить обратную матрицу к объекту для отмены преобразования, выполненного при применении исходной матрицы.
     
     </apiDesc><example conref="examples\Matrix_invert.as"> В следующем примере создается объект <codeph>halfScaleMatrix</codeph> с помощью вызова метода <codeph>invert()</codeph> объекта <codeph>doubleScaleMatrix</codeph>. Также показано, что две матрицы являются обратными по отношению друг к другу - матрицы, которые отменяют все преобразования, выполненные противоположной матрицей - путем создания объекта <codeph>originalAndInverseMatrix</codeph>, который равен объекту <codeph>noScaleMatrix</codeph>.
<codeblock>

package
{
    import flash.display.Shape;
    import flash.display.Sprite;
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    public class Matrix_invert extends Sprite
    {
        public function Matrix_invert()
        {
            var rect0:Shape = createRectangle(20, 80, 0xFF0000);   
            var rect1:Shape = createRectangle(20, 80, 0x00FF00);   
            var rect2:Shape = createRectangle(20, 80, 0x0000FF);
            var rect3:Shape = createRectangle(20, 80, 0x000000);
            
            var trans0:Transform = new Transform(rect0);
            var trans1:Transform = new Transform(rect1);
            var trans2:Transform = new Transform(rect2);
            var trans3:Transform = new Transform(rect3);
             
            var doubleScaleMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0);
            trans0.matrix = doubleScaleMatrix;
            trace(doubleScaleMatrix.toString());  // (a=2, b=0, c=0, d=2, tx=0, ty=0)
             
            var noScaleMatrix:Matrix = new Matrix(1, 0, 0, 1, 0, 0);
            trans1.matrix = noScaleMatrix;
            rect1.x = 50;
            trace(noScaleMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)
             
            var halfScaleMatrix:Matrix = doubleScaleMatrix.clone();
            halfScaleMatrix.invert();
            trans2.matrix = halfScaleMatrix;
            rect2.x = 100;
            trace(halfScaleMatrix.toString());  // (a=0.5, b=0, c=0, d=0.5, tx=0, ty=0)
             
            var originalAndInverseMatrix:Matrix = doubleScaleMatrix.clone();
            originalAndInverseMatrix.concat(halfScaleMatrix);
            trans3.matrix = originalAndInverseMatrix;
            rect3.x = 150;
            trace(originalAndInverseMatrix.toString());  // (a=1, b=0, c=0, d=1, tx=0, ty=0)            
        }
        
        public function createRectangle(w:Number, h:Number, color:Number):Shape 
        {
            var rect:Shape = new Shape();
            rect.graphics.beginFill(color);
            rect.graphics.drawRect(0, 0, w, h);
            addChild(rect);
            return rect;
        }
    }
}
</codeblock></example></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:rotate"><apiName>rotate</apiName><shortdesc>
     Применяет преобразование поворотом к объекту Matrix.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example the <code>rotate()</code> method rotates <code>rectangleMc</code>
    30 degrees clockwise.  Notice that applying <code>myMatrix</code> to <code>rectangleMc</code>
    resets its <i>_x</i> value leaving us to reset it to 100 manually.
    
    <listing version="2.0">
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    var myMatrix:Matrix = new Matrix();
    trace(myMatrix.toString());           // (a=1, b=0, c=0, d=1, tx=0, ty=0)
    
    var degrees:Number = 30;
    var radians:Number = (degrees/180) ~~ Math.PI;
    myMatrix.rotate(radians);
    trace(myMatrix.toString());           // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=0, ty=0)
    
    var rectangleMc:MovieClip = createRectangle(20, 80, 0xFF0000);
    trace(rectangleMc._x);                // 0
    rectangleMc._x = 100;
    trace(rectangleMc._x);                // 100
    
    var rectangleTrans:Transform = new Transform(rectangleMc);
    rectangleTrans.matrix = myMatrix;
    trace(rectangleMc._x);                // 0
    rectangleMc._x = 100;
    trace(rectangleMc._x);                // 100
    
    function createRectangle(width:Number, height:Number, color:Number):MovieClip {
      var depth:Number = this.getNextHighestDepth();
      var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
    }
    </listing>
    The above example uses the <code>_x</code> property of the MovieClip object 
    to position <code>rectangleMc</code>.  Generally, when dealing with Matrix
    positioning, mixing positioning techniques is considered bad style.  The  
    example above written in good style would concatenate a translation Matrix to
    <code>myMatrix</code> to change the horizontal location of <code>rectangleMc</code>. 
    The following example demonstrates this. 
    <listing version="2.0">
    import flash.geom.Matrix;
    import flash.geom.Transform;
    
    var myMatrix:Matrix = new Matrix();
    trace(myMatrix.toString());   // (a=1, b=0, c=0, d=1, tx=0, ty=0)
    
    var degrees:Number = 30;
    var radians:Number = (degrees/180) ~~ Math.PI;
    myMatrix.rotate(radians);
    trace(myMatrix.toString());   // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=0, ty=0)
    
    var translateMatrix:Matrix = new Matrix();
    translateMatrix.translate(100, 0);
    myMatrix.concat(translateMatrix);
    trace(myMatrix.toString());   // (a=0.866025403784439, b=0.5, c=-0.5, d=0.866025403784439, tx=100, ty=0)
    
    var rectangleMc:MovieClip = createRectangle(20, 80, 0xFF0000);
    trace(rectangleMc._x);        // 0
    rectangleMc._x = 100;
    trace(rectangleMc._x);        // 100
    
    var rectangleTrans:Transform = new Transform(rectangleMc);
    rectangleTrans.matrix = myMatrix;
    trace(rectangleMc._x);        // 100
    
    function createRectangle(width:Number, height:Number, color:Number):MovieClip {
      var depth:Number = this.getNextHighestDepth();
      var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
    }
    </listing>
     </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>angle</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Угол поворота (в радианах).
     
     
     </apiDesc></apiParam></apiOperationDef><apiDesc>
     Применяет преобразование поворотом к объекту Matrix. 
     
     <p>Метод <codeph>rotate()</codeph> изменяет свойства <codeph>a</codeph>, <codeph>b</codeph>, <codeph>c</codeph> и <codeph>d</codeph> объекта Matrix. В матричном представлении это действие равнозначно сцеплению текущей матрицы со следующими значениями:</p>
     
     <p><adobeimage alt="Матричная запись параметров метода масштабирования" height="105" href="../../images/matrix_rotate.jpg" width="219"/></p>
     
     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:scale"><apiName>scale</apiName><shortdesc>
     Применяет преобразование масштабированием к объекту Matrix.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example uses the <code>scale()</code> method to
    scale <code>myMatrix</code> by a factor of 3 horizontally and a factor of 4 
    vertically.
    
    <listing version="2.0">
    import flash.geom.Matrix;
    
    var myMatrix:Matrix = new Matrix(2, 0, 0, 2, 100, 100);
    trace(myMatrix.toString());   // (a=2, b=0, c=0, d=2, tx=100, ty=100)
    
    myMatrix.scale(3, 4);
    trace(myMatrix.toString());   // (a=6, b=0, c=0, d=8, tx=300, ty=400)
    </listing>
     </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>sx</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент, используемый для масштабирования объекта вдоль оси <i>x</i>.
     </apiDesc></apiParam><apiParam><apiItemName>sy</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Коэффициент, используемый для масштабирования объекта вдоль оси <i>y</i>.
     
     </apiDesc></apiParam></apiOperationDef><apiDesc>
     Применяет преобразование масштабированием к объекту Matrix. Ось <i>x</i> умножается на значение <codeph>sx</codeph>, а ось <i>y</i> - на значение <codeph>sy</codeph>.
     
     <p>Метод <codeph>scale()</codeph> изменяет свойства <codeph>a</codeph> и <codeph>d</codeph> объекта Matrix. В матричном представлении это действие равнозначно сцеплению текущей матрицы со следующей матрицей:</p>
     <p><adobeimage alt="Матричная запись параметров метода масштабирования" height="105" href="../../images/matrix_scale.jpg" width="140"/></p>
     
     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:toString"><apiName>toString</apiName><shortdesc>
     Возвращает текстовое значение, содержащее список свойств объекта Matrix.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates <code>myMatrix</code> and converts its values 
     to a String in the format of (a=A, b=B, c=C, d=D, tx=TX, ty=TY).
     
     <listing version="2.0">
     import flash.geom.Matrix;
     
     var myMatrix:Matrix = new Matrix();
     trace("myMatrix: " + myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0)
     </listing>
      
     </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Строка со значениями свойств объекта Matrix: <codeph>a</codeph>, <codeph>b</codeph>, <codeph>c</codeph>, <codeph>d</codeph>, <codeph>tx</codeph> и <codeph>ty</codeph>.
     </apiDesc><apiOperationClassifier>String</apiOperationClassifier></apiReturn><apiTipTexts><apiTipText>Возвращает текстовое значение, содержащее список свойств объекта Matrix.
     </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
     Возвращает текстовое значение, содержащее список свойств объекта Matrix.
     
     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:transformPoint"><apiName>transformPoint</apiName><shortdesc>
     Возвращает результат применения геометрического преобразования, представленного объектом Matrix в заданной точке.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example uses the <code>transformPoint()</code> method 
    to create <code>transformedPoint</code> from <code>myPoint</code>.  Notice that
    the <code>translate()</code> method does have an affect on the position of <code>transformedPoint</code>.
    In the example, <code>scale()</code> increases the original <code>x</code> 
    value by a factor of three from 50 to 150, and <code>translate()</code> increases 
    <code>x</code> by 300 for a total value of 450.
    
    <listing version="2.0">
    import flash.geom.Matrix;     
    import flash.geom.Point;
    
    var myMatrix:Matrix = new Matrix();
    trace(myMatrix);  // (a=1, b=0, c=0, d=1, tx=0, ty=0)
    
    myMatrix.translate(100, 0);
    trace(myMatrix);  // (a=1, b=0, c=0, d=1, tx=100, ty=0)
    
    myMatrix.scale(3, 3);
    trace(myMatrix);  // (a=3, b=0, c=0, d=3, tx=300, ty=0)
    
    var myPoint:Point = new Point(50,0);
    trace(myPoint);                   // (50, 0)
          
    var transformedPoint:Point = myMatrix.transformPoint(myPoint);
    trace(transformedPoint);  // (450, 0)
    
    var pointMc_0:MovieClip = createRectangle(10, 10, 0xFF0000);
    pointMc_0._x = myPoint.x;
    
    var pointMc_1:MovieClip = createRectangle(10, 10, 0x00FF00);
    pointMc_1._x = transformedPoint.x;
    
    function createRectangle(width:Number, height:Number, color:Number):MovieClip {
      var depth:Number = this.getNextHighestDepth();
      var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
      mc.beginFill(color);
      mc.lineTo(0, height);
      mc.lineTo(width, height);
      mc.lineTo(width, 0);
      mc.lineTo(0, 0);
      return mc;
    }
    </listing>
     </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Точка, полученная в результате применения преобразования объекта Matrix.
    
    
    </apiDesc><apiOperationClassifier>flash.geom:Point</apiOperationClassifier></apiReturn><apiParam><apiItemName>point</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Точка, для которой необходимо получить результат преобразования объекта Matrix.
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Возвращает результат геометрического преобразования объекта Point.
     
     </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
     Возвращает результат применения геометрического преобразования, представленного объектом Matrix в заданной точке. 
     
     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Matrix:translate"><apiName>translate</apiName><shortdesc>
    Перемещает матрицу вдоль осей x и y, как задано параметрами dx и dy.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example uses the <code>translate()</code> method to position 
    <code>rectangleMc</code> x:100 and y:50. Notice that <code>translate()</code> affects 
    the translate values <code>tx</code> and <code>ty</code> but not <code>a</code>, <code>b</code>,
    <code>c</code>, or <code>d</code>.
    
    <listing version="2.0">
    import flash.geom.Matrix;
    
    var myMatrix:Matrix = new Matrix(2, 0, 0, 2, 100, 100);
    trace(myMatrix.toString());   // (a=2, b=0, c=0, d=2, tx=100, ty=100)
    
    myMatrix.translate(100, 50);
    trace(myMatrix.toString());   // (a=2, b=0, c=0, d=2, tx=200, ty=150)
    </listing>
    </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>dx</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение перемещения вправо по оси <i>x</i> (в пикселях).
    
    </apiDesc></apiParam><apiParam><apiItemName>dy</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение перемещения вниз по оси <i>y</i> (в пикселях).
    
    
    </apiDesc></apiParam><apiTipTexts><apiTipText>Перемещает матрицу вдоль осей x и y.
    
    <p>Метод <codeph>translate()</codeph> изменяет свойства <codeph>tx</codeph> и <codeph>ty</codeph> объекта матрицы. В матричном представлении это действие равнозначно сцеплению текущей матрицы со следующими значениями:</p>
    
    <p><adobeimage alt="Матричная запись параметров метода масштабирования" height="105" href="../../images/matrix_translate.jpg" width="150"/></p>
    
    </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
    Перемещает матрицу вдоль осей <i>x</i> и <i>y</i>, как задано параметрами <codeph>dx</codeph> и <codeph>dy</codeph>.
    
    </apiDesc></apiOperationDetail></apiOperation><apiValue id="flash.geom:Matrix:a"><apiName>a</apiName><shortdesc>
     Значение, от которого зависит размещение пикселей вдоль оси x при масштабировании или повороте изображения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
     
     </helpid></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Значение, от которого зависит размещение пикселей вдоль оси x при масштабировании или повороте изображения.
     
     </apiTipText></apiTipTexts></apiValueDef><apiDesc>
     Значение, от которого зависит размещение пикселей вдоль оси <i>x</i> при масштабировании или повороте изображения.
     
     </apiDesc><example conref="examples\Matrix.a.1.as"> В следующем примере показано создание объекта Matrix <codeph>myMatrix</codeph> и настройка его значения <codeph>a</codeph>.
<codeblock>
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.a);  // 1

myMatrix.a = 2;
trace(myMatrix.a);  // 2
</codeblock></example></apiValueDetail></apiValue><apiValue id="flash.geom:Matrix:b"><apiName>b</apiName><shortdesc>
     Значение, от которого зависит размещение пикселей вдоль оси y при повороте или наклоне изображения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
     
     </helpid></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Значение, от которого зависит размещение пикселей вдоль оси y при повороте или наклоне изображения.
     
     </apiTipText></apiTipTexts></apiValueDef><apiDesc>
     Значение, от которого зависит размещение пикселей вдоль оси <i>y</i> при повороте или наклоне изображения.
     
     </apiDesc><example conref="examples\Matrix.b.1.as"> В следующем примере показано создание объекта Matrix <codeph>myMatrix</codeph> и настройка его значения <codeph>b</codeph>.
<codeblock>
import flash.geom.Matrix;
 
var myMatrix:Matrix = new Matrix();
trace(myMatrix.b);  // 0

var degrees:Number = 30;
var radians:Number = (degrees/180) ~~ Math.PI;
myMatrix.b = Math.tan(radians);
trace(myMatrix.b);  // 0.5773502691896257
</codeblock></example></apiValueDetail></apiValue><apiValue id="flash.geom:Matrix:c"><apiName>c</apiName><shortdesc>
     Значение, от которого зависит размещение пикселей вдоль оси x при повороте или наклоне изображения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
     
     </helpid></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Значение, от которого зависит размещение пикселей вдоль оси x при повороте или наклоне изображения.
     
     </apiTipText></apiTipTexts></apiValueDef><apiDesc>
     Значение, от которого зависит размещение пикселей вдоль оси <i>x</i> при повороте или наклоне изображения.
     
     </apiDesc><example conref="examples\Matrix.c.1.as"> В следующем примере показано создание объекта Matrix <codeph>myMatrix</codeph> и настройка его значения <codeph>c</codeph>.
<codeblock>
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.c);  // 0

var degrees:Number = 30;
var radians:Number = (degrees/180) ~~ Math.PI;
myMatrix.c = Math.tan(radians);
trace(myMatrix.c);  // 0.5773502691896257
</codeblock></example></apiValueDetail></apiValue><apiValue id="flash.geom:Matrix:d"><apiName>d</apiName><shortdesc>
     Значение, от которого зависит размещение пикселей вдоль оси y при масштабировании или повороте изображения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
     
     </helpid></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Значение, от которого зависит размещение пикселей вдоль оси y при масштабировании или повороте изображения.
     
     </apiTipText></apiTipTexts></apiValueDef><apiDesc>
     Значение, от которого зависит размещение пикселей вдоль оси <i>y</i> при масштабировании или повороте изображения.
     
     </apiDesc><example conref="examples\Matrix.d.1.as"> В следующем примере показано создание объекта Matrix <codeph>myMatrix</codeph> и настройка его значения <codeph>d</codeph>.
<codeblock>
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.d);  // 1

myMatrix.d = 2;
trace(myMatrix.d);  // 2
</codeblock></example></apiValueDetail></apiValue><apiValue id="flash.geom:Matrix:tx"><apiName>tx</apiName><shortdesc>
     Расстояние, на которое перемещается каждая точка вдоль оси x.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
     
     </helpid></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Расстояние, на которое перемещается каждая точка вдоль оси x.
     
     </apiTipText></apiTipTexts></apiValueDef><apiDesc>
     Расстояние, на которое перемещается каждая точка вдоль оси <i>x</i>.
     
     </apiDesc><example conref="examples\Matrix.tx.1.as"> В следующем примере показано создание объекта Matrix <codeph>myMatrix</codeph> и настройка его значения <codeph>tx</codeph>.
<codeblock>
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.tx);  // 0

myMatrix.tx = 50;  // 50
trace(myMatrix.tx);
</codeblock></example></apiValueDetail></apiValue><apiValue id="flash.geom:Matrix:ty"><apiName>ty</apiName><shortdesc>
     Расстояние, на которое перемещается каждая точка вдоль оси y.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
     
     </helpid></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Расстояние, на которое перемещается каждая точка вдоль оси y.
     
     </apiTipText></apiTipTexts></apiValueDef><apiDesc>
     Расстояние, на которое перемещается каждая точка вдоль оси <i>y</i>.
     
     </apiDesc><example conref="examples\Matrix.ty.1.as"> В следующем примере показано создание объекта Matrix <codeph>myMatrix</codeph> и настройка его значения <codeph>ty</codeph>.
<codeblock>
import flash.geom.Matrix;

var myMatrix:Matrix = new Matrix();
trace(myMatrix.ty);  // 0

myMatrix.ty = 50;
trace(myMatrix.ty);  // 50
</codeblock></example></apiValueDetail></apiValue></apiClassifier><apiClassifier id="flash.geom:Rectangle"><apiName>Rectangle</apiName><shortdesc>
 Объект Rectangle представляет собой область, которая определяется расположением, задаваемым точкой левого верхнего угла (x, y), шириной и высотой.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiTipTexts><apiTipText>Объект Rectangle представляет собой область, которая определяется расположением, задаваемым точкой левого верхнего угла (x, y), шириной и высотой.
 
 </apiTipText></apiTipTexts><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
 Объект Rectangle представляет собой область, которая определяется расположением, задаваемым точкой левого верхнего угла (<i>x</i>, <i>y</i>), шириной и высотой. 
 
 <p>Свойства <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph> класса Rectangle независимы друг от друга; изменение значения одного свойства не влияет на значения других свойств. Однако свойства <codeph>right</codeph> и <codeph>bottom</codeph> полностью связаны с этими четырьмя свойствами. Например, при изменении значения свойства <codeph>right</codeph> изменяется значение свойства <codeph>width</codeph>; при изменении свойства <codeph>bottom</codeph> изменяется значение свойства <codeph>height</codeph>. </p>
 
 <p platform="actionscript">В следующих методах и свойствах используются объекты Rectangle:</p>
 
 <ul platform="actionscript">
 
 	<li>Методы <codeph>applyFilter()</codeph>, <codeph>colorTransform()</codeph>, <codeph>copyChannel()</codeph>, <codeph>copyPixels()</codeph>, <codeph>draw()</codeph>, <codeph>fillRect()</codeph>, <codeph>generateFilterRect()</codeph>, <codeph>getColorBoundsRect()</codeph>, <codeph>getPixels()</codeph>, <codeph>merge()</codeph>, <codeph>paletteMap()</codeph>, <codeph>pixelDisolve()</codeph>, <codeph>setPixels()</codeph>, <codeph>threshold()</codeph> и свойство <codeph>rect</codeph> класса BitmapData.</li>
 
 	<li>Методы <codeph>getBounds()</codeph>, <codeph>getRect()</codeph> и свойства <codeph>scrollRect</codeph>, <codeph>scale9Grid</codeph> класса DisplayObject.</li>
 
 	<li>Метод <codeph>getCharBoundaries()</codeph> класса TextField.</li>
 
 	<li>Свойство <codeph>pixelBounds</codeph> класса Transform.</li>
 
 	<li>Параметр <codeph>bounds</codeph> для метода <codeph>startDrag()</codeph> класса Sprite.</li>
 
 	<li>Параметр <codeph>printArea</codeph> метода <codeph>addPage()</codeph> класса PrintJob.</li>
 
 </ul>
 
 <p>Конструктор <codeph>new Rectangle()</codeph> можно использовать для создания объекта Rectangle.</p>
 
 <p platform="actionscript"><b>Примечание.</b> Класс Rectangle не определяет экранный объект прямоугольной формы. Чтобы нарисовать объект прямоугольной формы на экране, необходимо использовать метод <codeph>drawRect()</codeph> класса Graphics.</p>
 
 </apiDesc><example conref="examples\RectangleExample.as"> В следующем примере класс RectangleExample используется для создания трех новых объектов Rectangle с различными координатами <i>x</i>,<i>y</i> и различными значениями высоты и ширины, а затем метод <codeph>trace()</codeph> используется для подтверждения успешного создания экземпляров Rectangle. Далее логическая переменная <codeph>isContained</codeph> назначается результату вызова метода <codeph>containsRect()</codeph>, который определяет, что второй прямоугольник не полностью заключает в себя третий прямоугольник.
<codeblock>
package {
    import flash.display.Sprite;
    import flash.geom.Rectangle;

    public class RectangleExample extends Sprite {

        public function RectangleExample() {
            var firstRect:Rectangle = new Rectangle();
            trace(firstRect);  // (x=0, y=0, w=0, h=0)
            var secondRect:Rectangle = new Rectangle(1, 3, 11, 13);
            trace(secondRect); // (x=1, y=3, w=11, h=13)
            var thirdRect:Rectangle = new Rectangle(5, 8, 17, 19);
            trace(thirdRect);  // (x=5, y=8, w=17, h=19)
            var isContained:Boolean = secondRect.containsRect(thirdRect);
            trace(isContained); // false
        }
    }
}
</codeblock></example></apiClassifierDetail><related-links><link href="flash.display.xml#DisplayObject/scrollRect"><linktext>flash.display.DisplayObject.scrollRect</linktext></link><link href="flash.display.xml#BitmapData"><linktext>flash.display.BitmapData</linktext></link><link href="flash.display.xml#DisplayObject"><linktext>flash.display.DisplayObject</linktext></link><link href="flash.display.xml#NativeWindow"><linktext>flash.display.NativeWindow</linktext></link><link href="flash.text.xml#TextField/getCharBoundaries()"><linktext>flash.text.TextField.getCharBoundaries()</linktext></link><link href="flash.geom.xml#Transform/pixelBounds"><linktext>flash.geom.Transform.pixelBounds</linktext></link><link href="flash.display.xml#Sprite/startDrag()"><linktext>flash.display.Sprite.startDrag()</linktext></link><link href="flash.printing.xml#PrintJob/addPage()"><linktext>flash.printing.PrintJob.addPage()</linktext></link></related-links><apiConstructor id="flash.geom:Rectangle:Rectangle"><apiName>Rectangle</apiName><shortdesc>
	Создает новый объект Rectangle левый верхний угол которого задан параметрами x и y, а также с заданными шириной и высотой.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a new Rectangle with with specific parameters.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(5, 10, 50, 100);
	trace(rect.toString()); // (x=5, y=10, w=50, h=100)
	</listing>
	 </maelexample></asCustoms></prolog><apiConstructorDetail><apiConstructorDef><apiAccess value="public"/><apiParam><apiItemName>x</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Координата <i>x</i> левого верхнего угла прямоугольника.
	</apiDesc></apiParam><apiParam><apiItemName>y</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Координата <i>y</i> левого верхнего угла прямоугольника.
	</apiDesc></apiParam><apiParam><apiItemName>width</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Ширина прямоугольника в пикселях.
	</apiDesc></apiParam><apiParam><apiItemName>height</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Высота прямоугольника в пикселях.
	
	</apiDesc></apiParam><apiTipTexts><apiTipText>Создает новый объект Rectangle левый верхний угол которого задан параметрами x и y, а также с заданными шириной и высотой.
	
	</apiTipText></apiTipTexts></apiConstructorDef><apiDesc>
	Создает новый объект Rectangle левый верхний угол которого задан параметрами <codeph>x</codeph> и <codeph>y</codeph>, а также с заданными <codeph>шириной</codeph> и <codeph>высотой</codeph>. Если эта функция вызвана без параметров, создается прямоугольник, для которого значения свойств <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph> равны 0.
	
	
	</apiDesc></apiConstructorDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiConstructor><apiOperation id="flash.geom:Rectangle:clone"><apiName>clone</apiName><shortdesc>
	Возвращает новый объект Rectangle с такими же значениями свойств x, y, width и height, как и у исходного объекта Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example demonstrates the <code>clone</code> member.
	<listing version="2.0">
	import flash.geom.Rectangle;
	var rect:Rectangle = new Rectangle(1, 2, 4, 8);
	var shadow:Rectangle = rect.clone();
	shadow.offset(5, 5);
	trace(rect); // (x=1, y=2, w=4, h=8)
	trace(shadow); // (x=6, y=7, w=4, h=8)
	</listing>

	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новый объект Rectangle с такими же значениями свойств <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph>, как и у исходного объекта Rectangle.
	
	</apiDesc><apiOperationClassifier>flash.geom:Rectangle</apiOperationClassifier></apiReturn><apiTipTexts><apiTipText>Возвращает копию данного объекта Rectangle.
	
	</apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	Возвращает новый объект Rectangle с такими же значениями свойств <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph>, как и у исходного объекта Rectangle.
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:containsPoint"><apiName>containsPoint</apiName><shortdesc>
	Определяет, будет ли указанная точка находится в области прямоугольника, задаваемой этим объектом Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Do the specified Points fall inside of the Rectangle?
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(10, 10, 50, 50);
	var containsPoint_1:Boolean = rect.containsPoint(new Point(10, 10));
	trace(containsPoint_1); // true
	var containsPoint_2:Boolean = rect.containsPoint(new Point(59, 59));
	trace(containsPoint_2); // true
	var containsPoint_3:Boolean = rect.containsPoint(new Point(60, 60));
	trace(containsPoint_3); // false
	</listing>
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Значение <codeph>true</codeph> возвращается, если объект Rectangle содержит указанную точку; в противном случае возвращается <codeph>false</codeph>.
	
	</apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>point</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Точка, представленная координатами <i>x</i> и <i>y</i>.  
	</apiDesc></apiParam><apiTipTexts><apiTipText>Определяет, находится ли заданная точка внутри прямоугольной области, заданной данным объектом Rectangle с объектом Point в качестве параметра.
	
	</apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	Определяет, будет ли указанная точка находится в области прямоугольника, задаваемой этим объектом Rectangle. Этот метод аналогичен методу <codeph>Rectangle.contains()</codeph>, за исключением того, что в нем объект Point используется как параметр.
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Rectangle/contains()"><linktext>contains()</linktext></link><link href="flash.geom.xml#Point"><linktext>flash.geom.Point</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:containsRect"><apiName>containsRect</apiName><shortdesc>
	Определяет, является ли объект Rectangle, задаваемый параметром rect, частью данного объекта Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>A Rectangle is said to contain another if that second 
	Rectangle falls entirely within the boundaries of the first.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rectA:Rectangle = new Rectangle(10, 10, 50, 50);
	var rectB:Rectangle = new Rectangle(10, 10, 50, 50);
	var rectC:Rectangle = new Rectangle(10, 10, 51, 51);
	var rectD:Rectangle = new Rectangle(15, 15, 45, 45);
	var rectAContainsB:Boolean = rectA.containsRect(rectB); // true
	var rectAContainsC:Boolean = rectA.containsRect(rectC); // false
	var rectAContainsD:Boolean = rectA.containsRect(rectD); // true
	</listing>
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращается значение <codeph>true</codeph>, если заданный объект Rectangle является частью данного объекта Rectangle; в противном случае возвращается <codeph>false</codeph>.
	
	</apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>rect</apiItemName><apiOperationClassifier>flash.geom:Rectangle</apiOperationClassifier><apiDesc>Проверенный объект Rectangle.
	
	</apiDesc></apiParam><apiTipTexts><apiTipText>Определяет, является ли объект Rectangle, задаваемый параметром rect, частью данного объекта Rectangle.
	
	</apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	Определяет, является ли объект Rectangle, задаваемый параметром <codeph>rect</codeph>, частью данного объекта Rectangle. Можно сказать, что объект Rectangle содержит другой объект, если второй объект Rectangle полностью находится в границах первого объекта.
	
	</apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Rectangle:contains"><apiName>contains</apiName><shortdesc>
	Определяет, будет ли указанная точка находится в области прямоугольника, задаваемой этим объектом Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Do the coordinates fall inside of the Rectangle?
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(10, 10, 50, 50);
	var doesContain_1:Boolean = rect.contains(59, 59);
	trace(doesContain_1); // true
	var doesContain_2:Boolean = rect.contains(10, 10);
	trace(doesContain_2); // true
	var doesContain_3:Boolean = rect.contains(60, 60);
	trace(doesContain_3); // false
	</listing>

	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Значение <codeph>true</codeph> возвращается, если объект Rectangle содержит указанную точку; в противном случае возвращается <codeph>false</codeph>.
	
	</apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>x</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Координата <i>x</i> точки (положение по горизонтали).  
	</apiDesc></apiParam><apiParam><apiItemName>y</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Координата <i>y</i> точки (вертикальное положение).
	</apiDesc></apiParam><apiTipTexts><apiTipText>Определяет, содержится ли заданная точка внутри прямоугольной области.
	
	</apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	Определяет, будет ли указанная точка находится в области прямоугольника, задаваемой этим объектом Rectangle.
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Point"><linktext>flash.geom.Point</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:equals"><apiName>equals</apiName><shortdesc>
	Определяет, является ли объект, задаваемый параметром toCompare, эквивалентом данного объекта Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Even though the method signature only expects an abstract Object
	only other Rectangle instances will ever be treated as equal.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect_1:Rectangle = new Rectangle(0, 0, 50, 100);
	var nonRect:Object = new Object();
	nonRect.x = 0;
	nonRect.y = 0;
	nonRect.width = 50;
	nonRect.height = 100;
	trace(rect_1.equals(nonRect));
	</listing>
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращается значение <codeph>true</codeph>, если значения свойств <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph> объекта и данного объекта Rectangle полностью совпадают; в противном случае возвращается <codeph>false</codeph>.
	
	</apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>toCompare</apiItemName><apiOperationClassifier>flash.geom:Rectangle</apiOperationClassifier><apiDesc>Прямоугольник, сравниваемый с данным объектом Rectangle.
	
	</apiDesc></apiParam><apiTipTexts><apiTipText>Определяет, является ли объект, задаваемый параметром toCompare, эквивалентом данного объекта Rectangle.
	
	</apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	Определяет, является ли объект, задаваемый параметром <codeph>toCompare</codeph>, эквивалентом данного объекта Rectangle. Этот метод сравнивает свойства <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph> объекта с такими же свойствами данного объекта Rectangle.
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:inflatePoint"><apiName>inflatePoint</apiName><shortdesc>
	 Увеличивает размер объекта Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a Rectangle and inflate it by the <i>x</i> <i>horizontal</i> and <i>y</i> <i>vertical</i> amounts found in Point
	 
	 <listing version="2.0">
	 import flash.geom.~~;
	 var rect:Rectangle = new Rectangle(0, 0, 2, 5);
	 var myPoint:Point = new Point(2, 2);
	 rect.inflatePoint(myPoint);
	 trace(rect.toString()); // (x=-2, y=-2, w=6, h=9)
	 </listing>
	 
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>point</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Свойство <codeph>x</codeph> этого объекта Point используется для увеличения горизонтального размера объекта Rectangle. Свойство <codeph>y</codeph> используется для увеличения вертикального размера объекта Rectangle.
	 
	 </apiDesc></apiParam><apiTipTexts><apiTipText>Увеличивает размер объекта Rectangle с объектом Point в качестве параметра.
	 
	 </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	 Увеличивает размер объекта Rectangle. Этот метод аналогичен методу <codeph>Rectangle.inflate()</codeph>, за исключением того, что в нем объект Point используется как параметр.
	 
	  <p>В следующих двух примерах кода получается одинаковый результат:</p>
	 
	 <codeblock platform="actionscript">
	 var rect1:Rectangle = new Rectangle(0,0,2,5);
	 rect1.inflate(2,2)
	 </codeblock>
	 
	 <codeblock platform="actionscript">
	 var rect1:Rectangle = new Rectangle(0,0,2,5);
	 var pt1:Point = new Point(2,2);
	 rect1.inflatePoint(pt1)
	 </codeblock>
	 
	 <codeblock platform="javascript">
	 var rect1 = new air.Rectangle(0,0,2,5);
	 rect1.inflate(2,2)
	 </codeblock>
	 
	 <codeblock platform="javascript">
	 var rect1 = new air.Rectangle(0,0,2,5);
	 var pt1 = new air.Point(2,2);
	 rect1.inflatePoint(pt1)
	 </codeblock>
	 
	 </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Point"><linktext>flash.geom.Point</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:inflate"><apiName>inflate</apiName><shortdesc>
	Увеличивает размер объекта Rectangle на заданные величины (в пикселях).</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a Rectangle and increase its <code>width</code> by 16 ~~ 2 (32) and it's <code>height</code> by 32 ~~ 2 (64)
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(1, 2, 4, 8);
	trace(rect.toString()); // (x=1, y=2, w=4, h=8)
	rect.inflate(16, 32);
	trace(rect.toString()); // (x=-15, y=-30, w=36, h=72)	
	</listing>
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>dx</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение, добавляемое слева и справа от объекта Rectangle. Следующее уравнение используется для вычисления новой ширины и нового положения прямоугольника:
	
	<codeblock>
	x -= dx;
	width += 2 ~~ dx;
	</codeblock>
	
	</apiDesc></apiParam><apiParam><apiItemName>dy</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение, добавляемое вверху и внизу прямоугольника Rectangle. Следующее уравнение используется для вычисления новой высоты и нового положения прямоугольника:
	
	<codeblock>
	y -= dy;
	height += 2 ~~ dy;
	</codeblock>
	
	</apiDesc></apiParam></apiOperationDef><apiDesc>
	Увеличивает размер объекта Rectangle на заданные величины (в пикселях). Центральная точка объекта Rectangle остается неизменной, а его размеры увеличиваются слева и справа на значение <codeph>dx</codeph> и сверху и снизу на значение <codeph>dy</codeph>.
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:intersection"><apiName>intersection</apiName><shortdesc>
	Если объект Rectangle, заданный в параметре toIntersect, пересекает этот объект Rectangle, возвращается область пересечения в виде объекта Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>What area overlaps <code>rect_1</code> between <code>rect_2</code>?
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect_1:Rectangle = new Rectangle(0, 0, 50, 50);
	var rect_2:Rectangle = new Rectangle(25, 25, 100, 100);
	var intersectingArea:Rectangle = rect_1.intersection(rect_2);
	trace(intersectingArea.toString()); // (x=25, y=25, w=25, h=25)
	</listing>
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Объект Rectangle, равный области пересечения. Если пересечение объекта отсутствует, этот метод возвращает пустой объект Rectangle; то есть прямоугольник с нулевыми значениями свойств <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph>.
	
	</apiDesc><apiOperationClassifier>flash.geom:Rectangle</apiOperationClassifier></apiReturn><apiParam><apiItemName>toIntersect</apiItemName><apiOperationClassifier>flash.geom:Rectangle</apiOperationClassifier><apiDesc>Сравниваемый объект Rectangle для просмотра наличия пересечений с данным объектом Rectangle.
	
	</apiDesc></apiParam><apiTipTexts><apiTipText>Возвращает область пересечения.
	
	</apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	Если объект Rectangle, заданный в параметре <codeph>toIntersect</codeph>, пересекает этот объект Rectangle, возвращается область пересечения в виде объекта Rectangle. Если пересечение отсутствует, этот метод возвращает пустой объект Rectangle с нулевыми значениями свойств.
	
    <p><adobeimage alt="Получающийся в результате пересечения прямоугольник." href="../../images/rectangle_intersect.jpg"/></p>
	
	</apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Rectangle:intersects"><apiName>intersects</apiName><shortdesc>
	Определяет, пересекается ли объект, задаваемый параметром toIntersect, с данным объектом Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Does <code>rect_1</code> intersect with <code>rect_2</code>?
	
	<listing version="2.0">
	import flash.geom.~~;
	var rectA:Rectangle = new Rectangle(10, 10, 50, 50);
	var rectB:Rectangle = new Rectangle(59, 59, 50, 50);
	var rectC:Rectangle = new Rectangle(60, 60, 50, 50);
	var rectAIntersectsB:Boolean = rectA.intersects(rectB);
	var rectAIntersectsC:Boolean = rectA.intersects(rectC);
	trace(rectAIntersectsB); // true
	trace(rectAIntersectsC); // false
	
	var firstPixel:Rectangle = new Rectangle(0, 0, 1, 1);
	var adjacentPixel:Rectangle = new Rectangle(1, 1, 1, 1);
	var pixelsIntersect:Boolean = firstPixel.intersects(adjacentPixel);
	trace(pixelsIntersect); // false
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращается значение <codeph>true</codeph>, если заданный объект пересекает данный объект Rectangle; в противном случае возвращается <codeph>false</codeph>.
	
	</apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>toIntersect</apiItemName><apiOperationClassifier>flash.geom:Rectangle</apiOperationClassifier><apiDesc>Объект Rectangle, сравниваемый с данным объектом Rectangle. 
	
	</apiDesc></apiParam><apiTipTexts><apiTipText>Определяет, пересекается ли объект, задаваемый параметром toIntersect, с данным объектом Rectangle.
	
	</apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	Определяет, пересекается ли объект, задаваемый параметром <codeph>toIntersect</codeph>, с данным объектом Rectangle. Этот метод проверяет свойства <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph> заданного объекта Rectangle на наличие пересечения с данным объектом Rectangle.
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:isEmpty"><apiName>isEmpty</apiName><shortdesc>
	Определяет, является ли объект Rectangle пустым.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a non-empty Rectangle and make it become empty.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(1, 2, 4, 8);
	trace(rect.isEmpty()); // false
	rect.width = 0;
	trace(rect.isEmpty()); // true
	rect.width = 4;
	trace(rect.isEmpty()); // false
	rect.height = 0;
	trace(rect.isEmpty()); // true
	</listing>
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращается значение <codeph>true</codeph>, если ширина или высота объекта Rectangle меньше или равна 0; в противном случае возвращается <codeph>false</codeph>.
	
	</apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
	Определяет, является ли объект Rectangle пустым. 
	
	</apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Rectangle:offsetPoint"><apiName>offsetPoint</apiName><shortdesc>
	 Регулирует местоположение объекта Rectangle, используя объект Point в качестве параметра.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Offset a Rectangle by using the values found in a Point
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(1, 2, 4, 8);
	var myPoint:Point = new Point(16, 32);
	rect.offsetPoint(myPoint);
	trace(rect.toString()); // (x=17, y=34, w=4, h=8)
	</listing>
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>point</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Объект Point, используемый для коррекции этого объекта Rectangle.
	 
	</apiDesc></apiParam><apiTipTexts><apiTipText>Регулирует местоположение объекта Rectangle, используя объект Point в качестве параметра.
	 
	 </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	 Регулирует местоположение объекта Rectangle, используя объект Point в качестве параметра. Этот метод аналогичен методу <codeph>Rectangle.offset()</codeph>, за исключением того, что в нем объект Point используется как параметр.
	 
	 </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Point"><linktext>flash.geom.Point</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:offset"><apiName>offset</apiName><shortdesc>
	 Настраивает положение объекта Rectangle, как определено его верхним левым углом, на заданные значения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a Rectangle and offset it's <i>x</i> and <i>y</i> values by 5 and 10 respectively
	 
	 <listing version="2.0">
	 import flash.geom.~~;
	 var rect:Rectangle = new Rectangle(1, 2, 4, 8);
	 rect.offset(16, 32);
	 trace(rect.toString()); // (x=17, y=34, w=4, h=8)
	 </listing>
	 
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>dx</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Перемещает значение <i>x</i> объекта Rectangle на это расстояние.
	 </apiDesc></apiParam><apiParam><apiItemName>dy</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Перемещает значение <i>y</i> объекта Rectangle на это расстояние.
	 
	 </apiDesc></apiParam><apiTipTexts><apiTipText>Регулирует местоположение объекта Rectangle.
	 
	 </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	 Настраивает положение объекта Rectangle, как определено его верхним левым углом, на заданные значения.
	 
	 </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Rectangle:setEmpty"><apiName>setEmpty</apiName><shortdesc>
	Задает для всех свойств объекта Rectangle нулевые значения.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a non-empty Rectangle and make it empty.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(5, 10, 50, 100);
	trace(rect.isEmpty()); // false
	rect.setEmpty();
	trace(rect.isEmpty()); // true
	</listing>
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiTipTexts><apiTipText>Задает всем параметрам значение 0.
	
	</apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	Задает для всех свойств объекта Rectangle нулевые значения. Объект Rectangle является пустым, если его ширина или высота меньше или равна 0.
	
	<p> Этот метод задает нулевые значения свойств <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph>.</p>
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:toString"><apiName>toString</apiName><shortdesc>
	Создает и возвращает строку, содержащую данные о горизонтальном и вертикальном расположении, а также о ширине и высоте объекта Rectangle.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Concatenate a String representation of <code>rect_1</code> with some helpful 
	debugging text.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect_1:Rectangle = new Rectangle(0, 0, 50, 100);
	trace("Rectangle 1 : " + rect_1.toString()); // Rectangle 1 : (x=0, y=0, w=50, h=100)
	</listing>
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Строка, в которой перечислены значения всех следующих свойств объекта Rectangle: <codeph>x</codeph>, <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph>.
	
	</apiDesc><apiOperationClassifier>String</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
	Создает и возвращает строку, содержащую данные о горизонтальном и вертикальном расположении, а также о ширине и высоте объекта Rectangle.
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Rectangle:union"><apiName>union</apiName><shortdesc> 
	 Добавляет два прямоугольника для создания нового объекта Rectangle путем заполнения горизонтального и вертикального пространства между двумя прямоугольниками.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a new Rectangle out of the Union of two others.
	<p>For example, consider a rectangle with properties <code>x=20</code>, <code>y=50</code>, <code>width=60</code>, and 
	<code>height=30</code> (20, 50, 60, 30) and a second rectangle with properties (150, 130, 50, 30). 
	The union of these two rectangles would be a larger rectangle encompassing the two rectangles 
	with the properties (20, 50, 180, 110).</p>
	<listing version="2.0">
	import flash.geom.~~;
	var rect_1:Rectangle = new Rectangle(20, 50, 60, 30);
	var rect_2:Rectangle = new Rectangle(150, 130, 50, 30);
	var combined:Rectangle = rect_1.union(rect_2);
	trace(combined.toString()); // (x=20, y=50, w=180, h=110)
	</listing>
	
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новый объект Rectangle, который является объединением двух прямоугольников.
	
	</apiDesc><apiOperationClassifier>flash.geom:Rectangle</apiOperationClassifier></apiReturn><apiParam><apiItemName>toUnion</apiItemName><apiOperationClassifier>flash.geom:Rectangle</apiOperationClassifier><apiDesc>Объект Rectangle, добавляемый к данному объекту Rectangle.
	
	</apiDesc></apiParam><apiTipTexts><apiTipText>Создает новый объект Rectangle путем соединения двух прямоугольников.
	 
	 </apiTipText></apiTipTexts></apiOperationDef><apiDesc> 
	 Добавляет два прямоугольника для создания нового объекта Rectangle путем заполнения горизонтального и вертикального пространства между двумя прямоугольниками.
	 
    <p><adobeimage alt="Получающийся в результате объединения прямоугольник." href="../../images/rectangle_union.jpg"/></p>
	<p><b>Примечание.</b> Метод <codeph>union()</codeph> игнорирует прямоугольники со значением <codeph>0</codeph> в качестве значения для высоты или ширины, например, <codeph>var rect2:Rectangle = new Rectangle(300,300,50,0);</codeph></p>
	
	 </apiDesc></apiOperationDetail></apiOperation><apiValue id="flash.geom:Rectangle:height"><apiName>height</apiName><shortdesc>
	Высота прямоугольника в пикселях.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a Rectangle and change its <i>width</i> property 
	from 10 to 20. Notice that <code>rect.right</code> is also
	changed.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(5, 5, 10, 10);
	trace(rect.width); // 10
	trace(rect.right); // 15
	rect.width = 20;
	trace(rect.width); // 20
	trace(rect.right); // 25
	</listing>
	
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Высота прямоугольника в пикселях.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Высота прямоугольника в пикселях. Изменение значения свойства <codeph>height</codeph> объекта Rectangle не влияет на свойства <codeph>x</codeph>, <codeph>y</codeph> и <codeph>width</codeph>.
	
    <p><adobeimage alt="Изображение прямоугольника, на котором показаны свойства расположения и измерения." href="../../images/rectangle.jpg"/></p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:width"><apiName>width</apiName><shortdesc>
	Ширина прямоугольника в пикселях.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates a Rectangle object and change its <code>width</code> property 
	from 10 to 20. Notice that <code>rect.right</code> also
	changes.

	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(5, 5, 10, 10);
	trace(rect.width); // 10
	trace(rect.right); // 15
	rect.width = 20;
	trace(rect.width); // 20
	trace(rect.right); // 25
	</listing>
    </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Ширина прямоугольника.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Ширина прямоугольника в пикселях. Изменение значения свойства <codeph>width</codeph> объекта Rectangle не влияет на свойства <codeph>x</codeph>, <codeph>y</codeph> и <codeph>height</codeph>.
	
	<p><adobeimage alt="Изображение прямоугольника, на котором показаны свойства расположения и измерения." href="../../images/rectangle.jpg"/></p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:x"><apiName>x</apiName><shortdesc>
	Координата x левого верхнего угла прямоугольника.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates an empty Rectangle and sets its <i>x</i> property 
	to 10. Notice that <code>rect.left</code> is also changed.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle();
	trace(rect.x); // 0
	trace(rect.left); // 0
	rect.x = 10;
	trace(rect.x); // 10
	trace(rect.left); // 10
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Координата x левого верхнего угла прямоугольника.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Координата <i>x</i> левого верхнего угла прямоугольника. Изменение значения свойства <codeph>x</codeph> объекта Rectangle не влияет на свойства <codeph>y</codeph>, <codeph>width</codeph> и <codeph>height</codeph>. 
	
	<p>Значение свойства <codeph>x</codeph> равно значению свойства <codeph>left</codeph>.</p>
	
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Rectangle/left"><linktext>left</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:y"><apiName>y</apiName><shortdesc>
	Координата y левого верхнего угла прямоугольника.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates an empty Rectangle and sets its <i>y</i> property
	to 10. Notice that <code>rect.top</code> is also changed.
	
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle();
	trace(rect.y); // 0
	trace(rect.top); // 0
	rect.y = 10;
	trace(rect.y); // 10
	trace(rect.top); // 10
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Координата по оси Y левого верхнего угла.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Координата <i>y</i> левого верхнего угла прямоугольника. Изменение значения свойства <codeph>y</codeph> объекта Rectangle не влияет на свойства <codeph>x</codeph>, <codeph>width</codeph> и <codeph>height</codeph>.
	
	<p>Значение свойства <codeph>y</codeph> равно значению свойства <codeph>top</codeph>.</p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link><link href="flash.geom.xml#Rectangle/top"><linktext>top</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:bottomRight:get"><apiName>bottomRight</apiName><shortdesc>
	Расположение правого нижнего угла объекта Rectangle, заданного значениями свойств right и bottom.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Get the Rectangle <code>bottomRight</code> property as a Point object.
	<listing version="2.0">
	var rect:Rectangle = new Rectangle(1, 2, 4, 8);
	trace(rect.bottom); // 5
	trace(rect.right); // 10
	var myBottomRight:Point = rect.bottomRight;
	trace(myBottomRight.x); // 5
	trace(myBottomRight.y); // 10
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:Point</apiValueClassifier><apiTipTexts><apiTipText>Расположение правого нижнего угла объекта Rectangle, заданного свойствами right и bottom.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Расположение правого нижнего угла объекта Rectangle, заданного значениями свойств <codeph>right</codeph> и <codeph>bottom</codeph>.
	
    <p><adobeimage alt="Изображение прямоугольника, на котором показаны свойства расположения и измерения." href="../../images/rectangle.jpg"/></p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Point"><linktext>flash.geom.Point</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:bottom:get"><apiName>bottom</apiName><shortdesc>
	Сумма значений свойств y и height.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a Rectangle and change its <i>bottom</i> property 
	from 15 to 30. Notice that <code>rect.height</code> is also
	changed.
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(5, 5, 10, 10);
	trace(rect.height); // 10
	trace(rect.bottom); // 15
	rect.bottom = 30;
	trace(rect.height); // 25
	trace(rect.bottom); // 30
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Сумма значений свойств y и height.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Сумма значений свойств <codeph>y</codeph> и <codeph>height</codeph>.
	
    <p><adobeimage alt="Изображение прямоугольника, на котором показаны свойства расположения и измерения." href="../../images/rectangle.jpg"/></p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:left:get"><apiName>left</apiName><shortdesc>
	Координата x левого верхнего угла прямоугольника.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Change the <i>left</i> property and notice that 
	<code>rect.x</code> is also changed.
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle();
	trace(rect.left); // 0
	trace(rect.x); // 0
	rect.left = 10;
	trace(rect.left); // 10
	trace(rect.x); // 10
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Координата x левого верхнего угла прямоугольника.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Координата <i>x</i> левого верхнего угла прямоугольника. Изменение свойства <codeph>left</codeph> объекта Rectangle не влияет на свойства <codeph>y</codeph> и <codeph>height</codeph>. Однако оно влияет на свойство <codeph>width</codeph>, тогда как изменение значения <codeph>x</codeph> <i>не</i> влияет на свойство <codeph>width</codeph>.
	
	<p>Значение свойства <codeph>left</codeph> равно значению свойства <codeph>x</codeph>.</p>
	
	
    <p><adobeimage alt="Изображение прямоугольника, на котором показаны свойства расположения и измерения." href="../../images/rectangle.jpg"/></p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:right:get"><apiName>right</apiName><shortdesc>
	Сумма свойств x и width.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Create a Rectangle and change its <i>right</i> property 
	from 15 to 30. Notice that <code>rect.width</code> is also
	changed.
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle(5, 5, 10, 10);
	trace(rect.width); // 10
	trace(rect.right); // 15
	rect.right = 30;
	trace(rect.width); // 25
	trace(rect.right); // 30
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Сумма свойств x и width.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Сумма свойств <codeph>x</codeph> и <codeph>width</codeph>.
	
    <p><adobeimage alt="Изображение прямоугольника, на котором показаны свойства расположения и измерения." href="../../images/rectangle.jpg"/></p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:size:get"><apiName>size</apiName><shortdesc>
	Размер объекта Rectangle, обозначенного как объект Point со значениями свойств width и height.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates a new Rectangle, retrieves it's <code>size</code>,
	changes the <code>size</code> and sets the new values on the Rectangle instance.
	It is critical to remember that the <code>Point</code> object used by <code>size</code>
	uses x and y values to represent the <code>width</code> and <code>height</code> properties
	of the Rectangle.
	<listing version="2.0">
	import flash.geom.Rectangle;
	import flash.geom.Point;
	var rect:Rectangle = new Rectangle(1, 2, 4, 8);
	
	var size:Point = rect.size;
	trace(size.x); // 4;
	trace(size.y); // 8;
	
	size.x = 16;
	size.y = 32;
	rect.size = size;
	trace(rect.x); // 1
	trace(rect.y); // 2
	trace(rect.width); // 16
	trace(rect.height); // 32
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:Point</apiValueClassifier><apiTipTexts><apiTipText>Размер объекта Rectangle, задаваемый в виде объекта Point со значениями размеров по высоте и ширине.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Размер объекта Rectangle, обозначенного как объект Point со значениями свойств <codeph>width</codeph> и <codeph>height</codeph>.
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Point"><linktext>flash.geom.Point</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:topLeft:get"><apiName>topLeft</apiName><shortdesc>
	Расположение левого верхнего угла объекта Rectangle, заданного координатами x и y точки.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Get the Rectangle <code>topLeft</code> property as a Point object.
	<listing version="2.0">
	var rect:Rectangle = new Rectangle(5, 15);
	var myTopLeft:Point = rect.topLeft;
	trace(myTopLeft.x); // 5;
	trace(myTopLeft.y); // 15;
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:Point</apiValueClassifier><apiTipTexts><apiTipText>Расположение левого верхнего угла объекта Rectangle, заданного значениями x и y точки.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Расположение левого верхнего угла объекта Rectangle, заданного координатами <i>x</i> и <i>y</i> точки.
	
    <p><adobeimage alt="Изображение прямоугольника, на котором показаны свойства расположения и измерения." href="../../images/rectangle.jpg"/></p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Point"><linktext>flash.geom.Point</linktext></link><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link></related-links></apiValue><apiValue id="flash.geom:Rectangle:top:get"><apiName>top</apiName><shortdesc>
	Координата y левого верхнего угла прямоугольника.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>Change the <i>top</i> property and notice that 
	<code>rect.y</code> is also changed.
	<listing version="2.0">
	import flash.geom.~~;
	var rect:Rectangle = new Rectangle();
	trace(rect.top); // 0
	trace(rect.y); // 0
	rect.top = 10;
	trace(rect.top); // 10
	trace(rect.y); // 10
	</listing>
	</maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Координата y левого верхнего угла прямоугольника.
	
	</apiTipText></apiTipTexts></apiValueDef><apiDesc>
	Координата <i>y</i> левого верхнего угла прямоугольника. Изменение свойства <codeph>top</codeph> объекта Rectangle не влияет на свойства <codeph>x</codeph> и <codeph>width</codeph>. Однако оно влияет на свойство <codeph>height</codeph>, тогда как изменение значения <codeph>y</codeph> <i>не</i> влияет на свойство <codeph>height</codeph>.
	
	<p>Значение свойства <codeph>top</codeph> равно значению свойства <codeph>y</codeph>.</p>
	
    <p><adobeimage alt="Изображение прямоугольника, на котором показаны свойства расположения и измерения." href="../../images/rectangle.jpg"/></p>
	
	</apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Rectangle/x"><linktext>x</linktext></link><link href="flash.geom.xml#Rectangle/y"><linktext>y</linktext></link><link href="flash.geom.xml#Rectangle/width"><linktext>width</linktext></link><link href="flash.geom.xml#Rectangle/height"><linktext>height</linktext></link></related-links></apiValue></apiClassifier><apiClassifier id="flash.geom:ColorTransform"><apiName>ColorTransform</apiName><shortdesc>
 Класс ColorTransform позволяет изменять значения цвета в экранном объекте.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
 Класс ColorTransform позволяет изменять значения цвета в экранном объекте. Настройку цвета или <i>преобразование цвета</i> можно применить ко всем четырем каналам: красный, зеленый, синий и альфа-прозрачность.
 
 <p>Когда объект ColorTransform применяется к экранному объекту, новое значение для каждого цветового канала вычисляется следующим образом:</p>
 
 <ul>
 <li>Новое значение красного = (старое значение красного * <codeph>redMultiplier</codeph>) + <codeph>redOffset</codeph></li>
 <li>Новое значение зеленого = (старое значение зеленого * <codeph>greenMultiplier</codeph>) + <codeph>greenOffset</codeph></li>
 <li>Новое значение синего = (старое значение синего * <codeph>blueMultiplier</codeph>) + <codeph>blueOffset</codeph></li>
 <li>Новое значение альфа-канала = (старое значение альфа-канала * <codeph>alphaMultiplier</codeph>) + <codeph>alphaOffset</codeph></li>
 </ul>
 
 <p>Если после вычисления значение цветового канала превышает 255, для него настраивается значение 255. Если значение меньше 0, задается значение 0.</p>
 
 <p>Объекты ColorTransform можно использовать следующими способами:</p>
 
 <ul>
 
 	<li>В параметре <codeph>colorTransform</codeph> метода <codeph>colorTransform()</codeph> класса BitmapData.</li>
 
 	<li>В качестве свойства <codeph>colorTransform</codeph> объекта Transform (который можно использовать как свойство <codeph>transform</codeph> экранного объекта).</li>
 
 </ul>
 
 <p>Необходимо использовать конструктор <codeph>new ColorTransform()</codeph> для создания объекта ColorTransform перед вызовом методов объекта ColorTransform.</p>
 
 <p>Преобразования цветов не применяются к цвету фона фрагмента ролика (например, загруженный объект SWF). Они применяются только к изображениям и символам, прикрепленным к фрагменту ролика.</p>
 
 </apiDesc><example conref="examples\ColorTransformExample.as"> В следующем примере класс TransformExample используется для создания простого спрайта в форме квадрата с заливкой с использованием градиентного шаблона. При каждом щелчке квадрата мышью в приложении выполняется преобразование цветов квадратного спрайта, добавление значения каналу красного цвета и осветление канала синего цвета. Это можно сделать, выполнив следующие действия:
 
 <ol>
     <li>Конструктор создает новый объект спрайта с именем <codeph>target</codeph>.</li>
 
     <li>Конструктор <codeph>CustomButton()</codeph> вызывает метод <codeph>draw()</codeph>, который рисует градиентный квадрат в спрайте.</li>
 
     <li>Конструктор <codeph>CustomButton()</codeph> добавляет прослушиватель событий щелчка для спрайта, который обрабатывается методом <codeph>clickHandler()</codeph>.  </li>
 
     <li>В методе <codeph>clickHandler()</codeph> два свойства заданы для свойств <codeph>redOffset</codeph> и <codeph>blueOffset</codeph> текущего преобразования цвета. Для каждого настроено значение 25. Затем свойство <codeph>transform.colorTransform</codeph> квадратного спрайта изменяется для использования новых значений коррекции. При каждом щелчке квадрата мышью происходит обращение к методу <codeph>clickHandler()</codeph> и цвет квадрата изменяется путем увеличения значения красного цвета и уменьшения значения синего цвета.  </li>
  </ol>
<codeblock>
package {
    import flash.display.Sprite;
    import flash.display.GradientType;
    import flash.geom.ColorTransform;
    import flash.events.MouseEvent;

    public class ColorTransformExample extends Sprite {
        public function ColorTransformExample() {
            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 rOffset:Number = transform.colorTransform.redOffset + 25;
            var bOffset:Number = transform.colorTransform.redOffset - 25;
            this.transform.colorTransform = new ColorTransform(1, 1, 1, 1, rOffset, 0, bOffset, 0);
        }
    }
}    
</codeblock></example></apiClassifierDetail><related-links><link href="flash.geom.xml#Transform"><linktext>flash.geom.Transform</linktext></link><link href="flash.display.xml#DisplayObject/transform"><linktext>flash.display.DisplayObject.transform</linktext></link><link href="flash.display.xml#BitmapData/colorTransform()"><linktext>flash.display.BitmapData.colorTransform()</linktext></link></related-links><apiConstructor id="flash.geom:ColorTransform:ColorTransform"><apiName>ColorTransform</apiName><shortdesc>
	 Создает объект ColorTransform для экранного объекта в заданными значениями цветовых каналов и значениями альфа-канала.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><keyword>new ColorTransform, constructor
 	 </keyword></asCustoms></prolog><apiConstructorDetail><apiConstructorDef><apiAccess value="public"/><apiParam><apiItemName>redMultiplier</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>1.0</apiData><apiDesc>Значение множителя красного цвета лежит в диапазоне от 0 до 1.
	 </apiDesc></apiParam><apiParam><apiItemName>greenMultiplier</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>1.0</apiData><apiDesc>Значение множителя зеленого цвета лежит в диапазоне от 0 до 1.
	 </apiDesc></apiParam><apiParam><apiItemName>blueMultiplier</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>1.0</apiData><apiDesc>Значение множителя синего цвета лежит в диапазоне от 0 до 1.
	 </apiDesc></apiParam><apiParam><apiItemName>alphaMultiplier</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>1.0</apiData><apiDesc>Значение множителя альфа-прозрачности лежит в диапазоне от 0 до 1.
	 </apiDesc></apiParam><apiParam><apiItemName>redOffset</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Значение коррекции для канала красного цвета находится в диапазоне от -255 до 255.
	 </apiDesc></apiParam><apiParam><apiItemName>greenOffset</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Значение коррекции для канала зеленого цвета находится в диапазоне от -255 до 255.
	 </apiDesc></apiParam><apiParam><apiItemName>blueOffset</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Коррекция для значения канала синего цвета находится в диапазоне от -255 до 255.
	 </apiDesc></apiParam><apiParam><apiItemName>alphaOffset</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Коррекция для значения канала альфа-прозрачности находится в диапазоне от -255 до 255.
	 
	 </apiDesc></apiParam><apiTipTexts><apiTipText>Создает объект ColorTransform для экранного объекта.
	 
	 </apiTipText></apiTipTexts></apiConstructorDef><apiDesc>
	 Создает объект ColorTransform для экранного объекта в заданными значениями цветовых каналов и значениями альфа-канала. 
	 
	 </apiDesc></apiConstructorDetail></apiConstructor><apiOperation id="flash.geom:ColorTransform:concat"><apiName>concat</apiName><shortdesc>
	 Выполняет сцепление объекта ColorTranform, заданного параметром second, с текущим объектом ColorTransform и задает текущий объект в качестве результата, представляющего собой аддитивную (полученную сложением) комбинацию двух преобразований цвета.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example concatenates the ColorTransform object <code>colorTrans_2</code>
	to <code>colorTrans_1</code> resulting in a full red offset combined with a .5 alpha multiplier.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
	var colorTrans_1:ColorTransform = new ColorTransform(1, 1, 1, 1, 255, 0, 0, 0);
	trace(colorTrans_1);		// (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=1, redOffset=255, greenOffset=0, blueOffset=0, alphaOffset=0)
	
	var colorTrans_2:ColorTransform = new ColorTransform(1, 1, 1, .5, 0, 0, 0, 0);
	trace(colorTrans_2);		// (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=0.5, redOffset=0, greenOffset=0, blueOffset=0, alphaOffset=0)
	
	colorTrans_1.concat(colorTrans_2);
	trace(colorTrans_1);		// (redMultiplier=1, greenMultiplier=1, blueMultiplier=1, alphaMultiplier=0.5, redOffset=255, greenOffset=0, blueOffset=0, alphaOffset=0)
	
	var rect:MovieClip = createRectangle(20, 80, 0x000000);
	var trans:Transform = new Transform(rect);
	trans.colorTransform = colorTrans_1;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>second</apiItemName><apiOperationClassifier>flash.geom:ColorTransform</apiOperationClassifier><apiDesc>Объект ColorTransform для комбинирования с текущим объектом ColorTransform.
	 
	 </apiDesc></apiParam></apiOperationDef><apiDesc>
	 Выполняет сцепление объекта ColorTranform, заданного параметром <codeph>second</codeph>, с текущим объектом ColorTransform и задает текущий объект в качестве результата, представляющего собой аддитивную (полученную сложением) комбинацию двух преобразований цвета. При применении сцепленного объекта ColorTransform получается такой же эффект, что и при применении преобразования цвета <codeph>second</codeph> после преобразования цвета <i>original</i>.
	 
	 </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:ColorTransform:toString"><apiName>toString</apiName><shortdesc>
	 Форматирует объект ColorTransform и возвращает строку с описанием всех его свойств.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and calls its <code>toSting()</code> method.  This method results in a string with the format
	(redMultiplier=RM, greenMultiplier=GM, blueMultiplier=BM, alphaMultiplier=AM, redOffset=RO, greenOffset=GO, blueOffset=BO, alphaOffset=AO).
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
 	var colorTrans:ColorTransform = new ColorTransform(1, 2, 3, 4, -255, -128, 128, 255);
 	trace(colorTrans.toString());		// (redMultiplier=1, greenMultiplier=2, blueMultiplier=3, alphaMultiplier=4, redOffset=-255, greenOffset=-128, blueOffset=128, alphaOffset=255)
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Строка, в которой перечислены все свойства объекта ColorTransform.
	 
	 </apiDesc><apiOperationClassifier>String</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
	 Форматирует объект ColorTransform и возвращает строку с описанием всех его свойств.
	 
	 </apiDesc></apiOperationDetail></apiOperation><apiValue id="flash.geom:ColorTransform:alphaMultiplier"><apiName>alphaMultiplier</apiName><shortdesc>
	 Десятичное значение, умножаемое на значение канала альфа-прозрачности.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and adjusts its <code>alphaMultiplier</code> from 1 to .5.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	import flash.geom.Transform;
	
	var colorTrans:ColorTransform = new ColorTransform();
	trace(colorTrans.alphaMultiplier);		// 1
	
	colorTrans.alphaMultiplier = .5;	
	trace(colorTrans.alphaMultiplier);		// .5
	
	var rect:MovieClip = createRectangle(20, 80, 0x000000);
	var trans:Transform = new Transform(rect);
	trans.colorTransform = colorTrans;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
	 Десятичное значение, умножаемое на значение канала альфа-прозрачности.
	 
	 <p>Если значение альфа-прозрачности экранного объекта задано напрямую с помощью свойства <codeph>alpha</codeph> экземпляра DisplayObject, оно влияет на значение свойства <codeph>alphaMultiplier</codeph> свойства <codeph>transform.colorTransform</codeph> экранного объекта.</p>
	 
	 </apiDesc></apiValueDetail><related-links><link href="flash.display.xml#DisplayObject/alpha"><linktext>flash.display.DisplayObject.alpha</linktext></link></related-links></apiValue><apiValue id="flash.geom:ColorTransform:alphaOffset"><apiName>alphaOffset</apiName><shortdesc>
	 Число от -255 до 255, добавляемое к значению канала альфа-прозрачности после умножения на значение alphaMultiplier.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and adjusts its <code>alphaOffset</code> from 0 to -128.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
	var colorTrans:ColorTransform = new ColorTransform();
	trace(colorTrans.alphaOffset);			// 0
	
	colorTrans.alphaOffset = -128;
	trace(colorTrans.alphaOffset);			// -128
	
	var rect:MovieClip = createRectangle(20, 80, 0x000000);
	var trans:Transform = new Transform(rect);
	trans.colorTransform = colorTrans;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Число от -255 до 255, добавляемое к значению канала альфа-прозрачности после умножения на значение alphaMultiplier.
   	 
	 </apiTipText></apiTipTexts></apiValueDef><apiDesc>
	 Число от -255 до 255, добавляемое к значению канала альфа-прозрачности после умножения на значение <codeph>alphaMultiplier</codeph>.
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:ColorTransform:blueMultiplier"><apiName>blueMultiplier</apiName><shortdesc>
	 Десятичное значение, умножаемое на значение синего канала.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and adjusts its <code>blueMultiplier</code> from 1 to .5.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
	var colorTrans:ColorTransform = new ColorTransform();
	trace(colorTrans.blueMultiplier);		// 1
	
	colorTrans.blueMultiplier = .5;
	trace(colorTrans.blueMultiplier);		// .5
	
	var rect:MovieClip = createRectangle(20, 80, 0x0000FF);
	var trans:Transform = new Transform(rect);
	trans.colorTransform = colorTrans;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
	 Десятичное значение, умножаемое на значение синего канала.
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:ColorTransform:blueOffset"><apiName>blueOffset</apiName><shortdesc>
	 Число от -255 до 255, добавляемое к значению синего канала после умножения на значение blueMultiplier.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and adjusts its <code>blueOffset</code> from 0 to 255.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
	var colorTrans:ColorTransform = new ColorTransform();
	trace(colorTrans.blueOffset);			// 0
	
	colorTrans.blueOffset = 255;
	trace(colorTrans.blueOffset);			// 255
	
	var rect:MovieClip = createRectangle(20, 80, 0x000000);
	var trans:Transform = new Transform(rect);
	trans.colorTransform = colorTrans;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Число от -255 до 255, добавляемое к значению синего канала после умножения на значение blueMultiplier.
	 
	 </apiTipText></apiTipTexts></apiValueDef><apiDesc>
	 Число от -255 до 255, добавляемое к значению синего канала после умножения на значение <codeph>blueMultiplier</codeph>.
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:ColorTransform:greenMultiplier"><apiName>greenMultiplier</apiName><shortdesc>
	 Десятичное значение, умножаемое на значение зеленого канала.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and adjusts its <code>greenMultiplier</code> from 1 to .5.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
	var colorTrans:ColorTransform = new ColorTransform();
	trace(colorTrans.greenMultiplier);		// 1
	
	colorTrans.greenMultiplier = .5;
	trace(colorTrans.greenMultiplier);		// .5
	
	var rect:MovieClip = createRectangle(20, 80, 0x00FF00);
	var trans:Transform = new Transform(rect);
	trans.colorTransform = colorTrans;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
	 Десятичное значение, умножаемое на значение зеленого канала.
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:ColorTransform:greenOffset"><apiName>greenOffset</apiName><shortdesc>
	 Число от -255 до 255, добавляемое к значению зеленого канала после умножения на значение greenMultiplier.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and adjusts its <code>greenOffset</code> from 0 to 255.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
	var colorTrans:ColorTransform = new ColorTransform();
	trace(colorTrans.greenOffset);			// 0
	
	colorTrans.redOffset = 255;
	trace(colorTrans.greenOffset);			// 255
	
	var rect:MovieClip = createRectangle(20, 80, 0x000000);
	var trans:Transform = new Transform(rect);
	trans.colorTransform = colorTrans;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Число от -255 до 255, добавляемое к значению зеленого канала после умножения на значение greenMultiplier.
	 
	 </apiTipText></apiTipTexts></apiValueDef><apiDesc>
	 Число от -255 до 255, добавляемое к значению зеленого канала после умножения на значение <codeph>greenMultiplier</codeph>.
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:ColorTransform:redMultiplier"><apiName>redMultiplier</apiName><shortdesc>
	 Десятичное значение, умножаемое на значение красного канала.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and adjusts its <code>redMultiplier</code> from 1 to .5.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
 	var colorTrans:ColorTransform = new ColorTransform();
 	trace(colorTrans.redMultiplier);		// 1
 	
 	colorTrans.redMultiplier = .5;
 	trace(colorTrans.redMultiplier);		// .5
 	
 	var rect:MovieClip = createRectangle(20, 80, 0xFF0000);
 	var trans:Transform = new Transform(rect);
 	trans.colorTransform = colorTrans;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
	 Десятичное значение, умножаемое на значение красного канала. 
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:ColorTransform:redOffset"><apiName>redOffset</apiName><shortdesc>
	 Число от -255 до 255, добавляемое к значению красного канала после умножения на значение redMultiplier.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates the ColorTransform object <code>colorTrans</code>
	and adjusts its <code>redOffset</code> from 0 to 255.
	<listing version="2.0">
	import flash.geom.ColorTransform;
	
	var colorTrans:ColorTransform = new ColorTransform();
	trace(colorTrans.redOffset);			// 0
	
	colorTrans.redOffset = 255;
	trace(colorTrans.redOffset);			// 255
	
	var rect:MovieClip = createRectangle(20, 80, 0x000000);
	var trans:Transform = new Transform(rect);
	trans.colorTransform = colorTrans;
	
	function createRectangle(width:Number, height:Number, color:Number, scope:MovieClip):MovieClip {
		scope = (scope == undefined) ? this : scope;
		var depth:Number = scope.getNextHighestDepth();
		var mc:MovieClip = scope.createEmptyMovieClip("mc_" + depth, depth);
		mc.beginFill(color);
		mc.lineTo(0, height);
		mc.lineTo(width, height);
		mc.lineTo(width, 0);
		mc.lineTo(0, 0);
		return mc;
	}
	</listing>
	 
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Число от -255 до 255, добавляемое к значению красного канала после умножения на значение redMultiplier.
	 
	 </apiTipText></apiTipTexts></apiValueDef><apiDesc>
	 Число от -255 до 255, добавляемое к значению красного канала после умножения на значение <codeph>redMultiplier</codeph>.
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:ColorTransform:color:get"><apiName>color</apiName><shortdesc>
	 Значение цвета RGB для объекта ColorTransform.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.0"/></apiVersion></asMetadata><asCustoms><oldexample>This example sets the RGB color value for the movie clip <code>my_mc</code>.<span class="flashonly"> To see this code work, place a movie clip on the Stage with the instance name <code>my_mc</code>. Then place the following code on Frame 1 in the main Timeline and select Control > Test Movie:</span>
	 <pre>
	 <code>var my_color:Color = new Color(my_mc);</code>
	 <code>my_color.setRGB(0xFF0000); // my_mc turns red</code>
	 </pre>
	  
	  </oldexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>uint</apiValueClassifier></apiValueDef><apiDesc>
	 Значение цвета RGB для объекта ColorTransform.
	 
	 <p>При настройке этого свойства изменяются три значения коррекции цвета (<codeph>redOffset</codeph>, <codeph>greenOffset</codeph> и <codeph>blueOffset</codeph>) соответственно и для трех значений множителя цвета (<codeph>redMultiplier</codeph>, <codeph>greenMultiplier</codeph> и <codeph>blueMultiplier</codeph>) задается значение 0. Множитель и значения коррекции альфа-прозрачности не изменяются.</p>
	 
	 <p>При передаче значения для этого свойства необходимо использовать формат 0x<i>RRGGBB</i>. Каждое значение <i>RR</i>, <i>GG</i> и <i>BB</i> состоит из двух шестнадцатеричных чисел, которые задают коррекцию каждого компонента цвета. Значение 0x указывает компилятору ActionScript, что число является шестнадцатеричным значением.</p>
	 
	 </apiDesc></apiValueDetail></apiValue></apiClassifier><apiClassifier id="flash.geom:Point"><apiName>Point</apiName><shortdesc>
 Объект Point представляет расположение в двумерной системе координат, где x соответствует горизонтальной оси, а y – вертикальной.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><helpid>
 </helpid></asCustoms></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiTipTexts><apiTipText>Класс Point представляет собой расположение в двумерной системе координат.
 
 </apiTipText></apiTipTexts><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
 Объект Point представляет расположение в двумерной системе координат, где <i>x</i> соответствует горизонтальной оси, а <i>y</i> – вертикальной. 
 
 <p>Следующий код позволяет создать точку с координатами (0,0):</p>
 
 <codeblock platform="actionscript">var myPoint:Point = new Point();</codeblock>
 
 <codeblock platform="javascript">var myPoint = new Point();</codeblock>
 
 <p>В методах и свойствах следующих классов используются объекты Point:</p>
 
 <ul>
 
 <li platform="actionscript">BitmapData</li>
 
 <li platform="actionscript">DisplayObject</li>
 
 <li platform="actionscript">DisplayObjectContainer</li>
 
 <li platform="actionscript">DisplacementMapFilter</li>
 
 <li>NativeWindow</li>
 
 <li platform="actionscript">Matrix</li>
 
 <li>Прямоугольник</li>
 
 </ul>
 
 <p>Конструктор <codeph>new Point()</codeph> можно использовать для создания объекта Point.</p>
 
 </apiDesc><example conref="examples\PointExample.as"> В следующем примере класс PointExample используется для создания нескольких новых объектов Point с различными координатами <i>x,y</i>, а затем метод <codeph>trace()</codeph> используется для вывода результатов различных методов класса.
<codeblock>
package {
    import flash.display.Sprite;
    import flash.geom.Point;

    public class PointExample extends Sprite {

        public function PointExample() {
        var point1:Point = new Point();
        trace(point1);  // (x=0, y=0)
        
        var point2:Point = new Point(6, 8);
        trace(point2); // (x=6, y=8)
        
        trace(Point.interpolate(point1, point2, 0.5)); // (x=3, y=4)
        
        trace(Point.distance(point1, point2)); // 10
        
        trace(point1.add(point2)); // (x=6, y=8)
        
        var point3:Point = point2.clone();
        trace(point2.equals(point3)); // true
        
        point3.normalize(2.5);
        trace(point3); // (x=1.5, y=2)
        
        trace(point2.subtract(point3)); // (x=4.5, y=6)
        
        trace(point1.offset(2, 3)); // 
        
        var angle:Number = Math.PI * 2 * (30 / 360); // 30Â°
        trace(Point.polar(4, angle)) // (x=3.464101615137755, y=1.9999999999999998)   
        }
    }
}
</codeblock></example></apiClassifierDetail><related-links><link href="flash.display.xml#BitmapData"><linktext>flash.display.BitmapData</linktext></link><link href="flash.display.xml#DisplayObject"><linktext>flash.display.DisplayObject</linktext></link><link href="flash.display.xml#DisplayObjectContainer"><linktext>flash.display.DisplayObjectContainer</linktext></link><link href="flash.filters.xml#DisplacementMapFilter"><linktext>flash.filters.DisplacementMapFilter</linktext></link><link href="flash.geom.xml#Matrix"><linktext>flash.geom.Matrix</linktext></link><link href="flash.display.xml#NativeWindow"><linktext>flash.display.NativeWindow</linktext></link><link href="flash.geom.xml#Rectangle"><linktext>flash.geom.Rectangle</linktext></link></related-links><apiConstructor id="flash.geom:Point:Point"><apiName>Point</apiName><shortdesc>
	 Создает новую точку.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The first example creates <code>point_1</code> with the default constructor.
	 <listing version="2.0">
	 import flash.geom.Point;
	 var point_1:Point = new Point();
	 trace(point_1.x); // 0
	 trace(point_1.y); // 0
	 </listing>
	 The second example creates <code>point_2</code> with the coordinates x = 1 and y = 2.
     <listing version="2.0">
	 import flash.geom.Point;
	 var point_2:Point = new Point(1, 2);
	 trace(point_2.x); // 1
	 trace(point_2.y); // 2
	 </listing>
	 
	  
	 </maelexample></asCustoms></prolog><apiConstructorDetail><apiConstructorDef><apiAccess value="public"/><apiParam><apiItemName>x</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Горизонтальная координата. 
	 </apiDesc></apiParam><apiParam><apiItemName>y</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiData>0</apiData><apiDesc>Вертикальная координата. 
	 
	 </apiDesc></apiParam></apiConstructorDef><apiDesc>
	 Создает новую точку. Если в этот метод параметры не передаются, создается точка с координатами (0,0).
	 </apiDesc></apiConstructorDetail></apiConstructor><apiOperation id="flash.geom:Point:add"><apiName>add</apiName><shortdesc>
      	 Создает новую точку путем добавления координат заданной точки к координатам текущей точки.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates a Point object <code>resultPoint</code> by adding <code>point_2</code> to 
	 <code>point_1</code>.
   	 
   	 <listing version="2.0">
   	 import flash.geom.Point;
   	 var point_1:Point = new Point(4, 8);
   	 var point_2:Point = new Point(1, 2);
   	 var resultPoint:Point = point_1.add(point_2);
   	 trace(resultPoint.toString()); // (x=5, y=10)
   	 </listing>
	 
   	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новая точка.
   	 
	 </apiDesc><apiOperationClassifier>flash.geom:Point</apiOperationClassifier></apiReturn><apiParam><apiItemName>v</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Добавляемая точка.
	 
      	 </apiDesc></apiParam></apiOperationDef><apiDesc>
      	 Создает новую точку путем добавления координат заданной точки к координатам текущей точки.
	 
      	 </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Point:clone"><apiName>clone</apiName><shortdesc>
	 Создает копию данного объекта Point.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates a <code>clonedPoint</code> from the values found in 
 	 <code>myPoint</code>.  The <code>clonedPoint</code> contains all the
	 the values from <code>myPoint</code> but is not the same object.
	 
	 <listing version="2.0">
	 import flash.geom.Point;
	 var myPoint:Point = new Point(1, 2);
	 var clonedPoint:Point = myPoint.clone();
	 trace(clonedPoint.x); // 1
	 trace(clonedPoint.y); // 2
	 trace(myPoint.equals(clonedPoint)); // true
	 trace(myPoint === clonedPoint); // false
	 </listing>
	 </maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новый объект Point.
	 
	 </apiDesc><apiOperationClassifier>flash.geom:Point</apiOperationClassifier></apiReturn><apiTipTexts><apiTipText>Создает копию объекта Point.
	 
	 </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	 Создает копию данного объекта Point.
	 </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Point:distance"><apiName>distance</apiName><shortdesc>
	 Возвращает расстояние между точками pt1 и pt2.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Расстояние между первой и второй точками.
	 </apiDesc><apiOperationClassifier>Number</apiOperationClassifier></apiReturn><apiParam><apiItemName>pt1</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Первая точка.
	 </apiDesc></apiParam><apiParam><apiItemName>pt2</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Вторая точка.
	 </apiDesc></apiParam></apiOperationDef><apiDesc>
	 Возвращает расстояние между точками <codeph>pt1</codeph> и <codeph>pt2</codeph>.
	 </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Point:equals"><apiName>equals</apiName><shortdesc>
	 Определяет, равны ли две точки.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Возвращается значение <codeph>true</codeph>, если объект равен данному объекту Point; <codeph>false</codeph>, если не равен.
	 </apiDesc><apiOperationClassifier>Boolean</apiOperationClassifier></apiReturn><apiParam><apiItemName>toCompare</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Сравниваемая точка.
	 </apiDesc></apiParam></apiOperationDef><apiDesc>
	 Определяет, равны ли две точки. Две точки равны, если они имеют одинаковые значения <i>x</i> и <i>y</i>.
	 </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Point:interpolate"><apiName>interpolate</apiName><shortdesc>
    Определяет точку между двумя заданными точками.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example locates the interpolated point (<code>interpolatedPoint</code>) half way (50%) between <code>point_1</code> and <code>point_2</code>.
   	
   	<listing version="2.0">
   	import flash.geom.Point;
   	var point_1:Point = new Point(-100, -100);
   	var point_2:Point = new Point(50, 50);
   	var interpolatedPoint:Point = Point.interpolate(point_1, point_2, .5);
   	trace(interpolatedPoint.toString()); // (x=-25, y=-25)
   	</listing> 
	
	
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Новая интерполированная точка. 
   	
   	</apiDesc><apiOperationClassifier>flash.geom:Point</apiOperationClassifier></apiReturn><apiParam><apiItemName>pt1</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Первая точка.
	</apiDesc></apiParam><apiParam><apiItemName>pt2</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Вторая точка.
	</apiDesc></apiParam><apiParam><apiItemName>f</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Уровень интерполяции между двумя точками. Обозначает местонахождения новой точки на линии между значениями <codeph>pt1</codeph> и <codeph>pt2</codeph>. Если <codeph>f</codeph>=1, возвращается <codeph>pt1</codeph>; если <codeph>f</codeph>=0, возвращается <codeph>pt2</codeph>.
   	
	</apiDesc></apiParam></apiOperationDef><apiDesc>
    Определяет точку между двумя заданными точками. Параметр <codeph>f</codeph> определяет положение новой интерполированной точки относительно двух конечных точек, заданных параметрами <codeph>pt1</codeph> и <codeph>pt2</codeph>. Чем ближе значение параметра <codeph>f</codeph> к <codeph>1,0</codeph>, тем ближе интерполированная точка расположена к первой точке (параметр <codeph>pt1</codeph>). Чем ближе значение параметра <codeph>f</codeph> к 0, тем ближе интерполированная точка расположена ко второй точке (параметр <codeph>pt2</codeph>).
	
	</apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Point:normalize"><apiName>normalize</apiName><shortdesc>
	Изменяет длину линии между точкой (0,0) и текущей точкой на заданную.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example extends the length of the <code>normalizedPoint</code> object from 5 to 10.
   	
   	<listing version="2.0">
   	import flash.geom.Point;
   	var normalizedPoint:Point = new Point(3, 4);
   	trace(normalizedPoint.length); // 5
   	trace(normalizedPoint.toString()); // (x=3, y=4)
   	normalizedPoint.normalize(10);
   	trace(normalizedPoint.length); // 10
   	trace(normalizedPoint.toString()); // (x=6, y=8)
   	</listing>
	
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Нормализованная точка.
	
   	</apiDesc><apiType value="void"/></apiReturn><apiParam><apiItemName>thickness</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение масштабирования. Например, если для текущей точки заданны координаты (0,5) и выполняется нормализация до значения 1, возвращается точка с координатами (0,1).
	
	</apiDesc></apiParam></apiOperationDef><apiDesc>
	Изменяет длину линии между точкой (0,0) и текущей точкой на заданную. 
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Point/length"><linktext>length</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Point:offset"><apiName>offset</apiName><shortdesc>
	 Сдвигает объект Point на заданное расстояние.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiType value="void"/></apiReturn><apiParam><apiItemName>dx</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение коррекции горизонтальной координаты, <i>x</i>.
	 </apiDesc></apiParam><apiParam><apiItemName>dy</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Значение коррекции вертикальной координаты, <i>y</i>.
	 </apiDesc></apiParam></apiOperationDef><apiDesc>
	 Сдвигает объект Point на заданное расстояние. Значение <codeph>dx</codeph> добавляется к исходному значению <i>x</i> для получения нового значения <i>x</i>. Значение <codeph>dy</codeph> добавляется к исходному значению <i>y</i> для получения нового значения <i>y</i>.
	 </apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Point:polar"><apiName>polar</apiName><shortdesc>
	Преобразует пару полярных координат в декартову точку.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates a Point object <code>cartesianPoint</code> from the value of <code>angleInRadians</code>
	and a line length of 5.  The <code>angleInRadians</code> value equal to Math.atan(3/4)
   	is used because of the characteristics of right triangles with sides that 
   	have ratios of 3:4:5.
	
   	<listing version="2.0">
   	import flash.geom.Point;
   	var len:Number = 5;
   	var angleInRadians:Number = Math.atan(3/4);
   	var cartesianPoint:Point = Point.polar(len, angleInRadians);
   	trace(cartesianPoint.toString()); // (x=4, y=3)
   	</listing>
	
	When computers work with transcendental numbers such as pi, some round-off
	error occurs because floating-point arithmetic has only finite precision.
	When you use <code>Math.PI</code>, consider using the <code>Math.round()</code> function, as shown 
	in the following example.
	
   	<listing version="2.0">
   	import flash.geom.Point;
   	var len:Number = 10;
   	var angleInRadians:Number = Math.PI;
    	var cartesianPoint:Point = Point.polar(len, angleInRadians);
   	trace(cartesianPoint.toString()); // should be (x=-10, y=0), but is (x=-10, y=1.22460635382238e-15)
   	trace(Math.round(cartesianPoint.y)); // 0
   	</listing>
	
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Точка в декартовой системе координат.
   	
   	</apiDesc><apiOperationClassifier>flash.geom:Point</apiOperationClassifier></apiReturn><apiParam><apiItemName>len</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Длина координаты полярной пары.
	</apiDesc></apiParam><apiParam><apiItemName>angle</apiItemName><apiOperationClassifier>Number</apiOperationClassifier><apiDesc>Угол (в радианах) полярной пары.
   	
	</apiDesc></apiParam></apiOperationDef><apiDesc>
	Преобразует пару полярных координат в декартову точку.
	
	</apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Point/length"><linktext>length</linktext></link><link href="#Math/round()"><linktext>Math.round()</linktext></link></related-links></apiOperation><apiOperation id="flash.geom:Point:subtract"><apiName>subtract</apiName><shortdesc>
	Создает новую точку путем вычитания координат заданной точки из координат текущей точки.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates <code>point_3</code> by subtracting <code>point_2</code> from <code>point_1</code>.
   	
   	<listing version="2.0">
   	import flash.geom.Point;
   	var point_1:Point = new Point(4, 8);
   	var point_2:Point = new Point(1, 2);
   	var resultPoint:Point = point_1.subtract(point_2);
   	trace(resultPoint.toString()); // (x=3, y=6)
   	</listing>
	
	</maelexample></asCustoms></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Новая точка.
   	
     	</apiDesc><apiOperationClassifier>flash.geom:Point</apiOperationClassifier></apiReturn><apiParam><apiItemName>v</apiItemName><apiOperationClassifier>flash.geom:Point</apiOperationClassifier><apiDesc>Вычитаемая точка.
	
	</apiDesc></apiParam></apiOperationDef><apiDesc>
	Создает новую точку путем вычитания координат заданной точки из координат текущей точки.
	
	</apiDesc></apiOperationDetail></apiOperation><apiOperation id="flash.geom:Point:toString"><apiName>toString</apiName><shortdesc>
	 Возвращает строку, содержащую значения координат по осям x и y.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Строковое представление координат.
	 </apiDesc><apiOperationClassifier>String</apiOperationClassifier></apiReturn><apiTipTexts><apiTipText>Возвращает строку, содержащую значения координат по осям x и y. 

	 </apiTipText></apiTipTexts></apiOperationDef><apiDesc>
	 Возвращает строку, содержащую значения координат по осям <i>x</i> и <i>y</i>. Строка записана в следующем виде <codeph>(x=<i>x</i>, y=<i>y</i>)</codeph>, поэтому при вызове метода <codeph>toString()</codeph> для точки с координатами 23,17 будет возвращено значение <codeph>(x=23, y=17)</codeph>.
   	 
   	 </apiDesc></apiOperationDetail></apiOperation><apiValue id="flash.geom:Point:x"><apiName>x</apiName><shortdesc>
	 Горизонтальная координата точки.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example sets the <i>x</i> (horizontal) coordinate of <code>myPoint</code> and gets <code>myX</code> from <code>myPoint.x</code>.
	 
     <listing version="2.0">	
	 import flash.geom.Point;
	 var myPoint:Point = new Point();
	 trace(myPoint.x); // 0
	 myPoint.x = 5;
	 trace(myPoint.x); // 5
	 var myX:Number = myPoint.x;
	 trace(myX); // 5
     </listing>
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
	 Горизонтальная координата точки. Значением по умолчанию является 0.
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Point:y"><apiName>y</apiName><shortdesc>
	 Вертикальная координата точки.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example sets the <i>y</i> (vertical) coordinate of <code>myPoint</code> and gets <code>myY</code> from <code>myPoint.y</code>.
     
     <listing version="2.0">	
	 import flash.geom.Point;
	 var myPoint:Point = new Point();
	 trace(myPoint.y); // 0
	 myPoint.y = 5;
	 trace(myPoint.y); // 5
	 var myY:Number = myPoint.y;
	 trace(myY); // 5
  	 </listing>
	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
	 Вертикальная координата точки. Значением по умолчанию является 0.
	 
	 </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:Point:length:get"><apiName>length</apiName><shortdesc>
	 Длина линии, проходящей через точку (0,0) и эту точку.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/></apiVersion></asMetadata><asCustoms><maelexample>The following example creates a new Point, <code>myPoint</code>, and determines the length of a line from (0, 0) to that Point.
	 
	 <listing version="2.0">
	 import flash.geom.Point;
	 var myPoint:Point = new Point(3,4);
	 trace(myPoint.length); // 5
	 </listing>
	 
   	  
   	 </maelexample></asCustoms></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="read"/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
	 Длина линии, проходящей через точку (0,0) и эту точку. 
	 
	 </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Point/polar()"><linktext>Point.polar()</linktext></link></related-links></apiValue></apiClassifier><apiClassifier id="flash.geom:PerspectiveProjection"><apiName>PerspectiveProjection</apiName><shortdesc> 
 Класс PerspectiveProjection позволяет назначать и модифицировать перспективы экранного объекта и его нижестоящих объектов.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata><asCustoms><helpid>
 </helpid></asCustoms></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc> 
 Класс PerspectiveProjection позволяет назначать и модифицировать перспективы экранного объекта и его нижестоящих объектов. Для более сложных или пользовательских преобразований перспективы используйте класс Matrix3D. Тогда как класс PerspectiveProjection содержит основные свойства пространственного представления объектов, класс Matrix3D предоставляет дополнительные возможности управления трехмерным представлением экранных объектов.
 
 <p>Проекция – это способ представления трехмерного объекта в двухмерном пространстве, например проекция куба на экран компьютера. В перспективной проекции используется конус видимости, прямоугольная пирамида, для моделирования и проецирования трехмерного пространства и его объектов на экране. Конус видимости значительно расширяется по мере удаления от исходного положения точки обзора. Исходным положением точки обзора может являться камера или глаза наблюдателя, смотрящего на экран. Спроецированная перспектива создает иллюзию трехмерного пространства с глубиной и расстоянием, в котором объекты, расположенные ближе к экрану, имеют большие размеры, чем объекты, расположенные на удаленном расстоянии от экрана.</p>
 
 <p><adobeimage alt="Область видимости конуса" href="../../images/frustum.jpg"/></p>
 
 <p>Объект PerspectiveProjection по умолчанию является каркасом, определенным для перспективного преобразования корневого объекта на основе поля обзора и соотношения сторон (размеров) сцены. Центр проекции, точка схода, задан в центре рабочей области, что обозначает, что трехмерные экранные объекты будут исчезать в центре рабочей области при перемещении в обратном направлении по оси z. Точкой просмотра по умолчанию является точка с координатами (0,0) при просмотре сверху вниз вдоль положительной оси z. Ось y направлена вниз экрана. Можно получить доступ к параметрам перспективной проекции экранного объекта <codeph>root</codeph> и изменить свойства поля обзора и центра проекции свойства <codeph>perspectiveProjection</codeph> с помощью свойства <codeph>DisplayObject.transform</codeph> экранного объекта <codeph>root</codeph>.</p> 
 
 <p>Можно изменить параметр перспективной проекции экранного объекта также посредством перспективной проекции вышестоящего объекта. Сначала создайте объект PerspectiveProjection и задайте его свойства <codeph>fieldOfView</codeph> и <codeph>projectionCenter</codeph>. Затем назначьте объект PerspectiveProjection вышестоящему экранному объекту при помощи свойства <codeph>DisplayObject.transform</codeph>. Затем заданные матрица проекции и преобразование будут применены ко всем трехмерным нижестоящим элементам экранного объекта.</p>
 
 
 </apiDesc></apiClassifierDetail><related-links><link href="flash.display.xml#DisplayObject/transform"><linktext>flash.display.DisplayObject.transform</linktext></link><link href="flash.geom.xml#Transform"><linktext>flash.geom.Transform</linktext></link><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link><link href="flash.geom.xml#Utils3D"><linktext>flash.geom.Utils3D</linktext></link></related-links><apiConstructor id="flash.geom:PerspectiveProjection:PerspectiveProjection"><apiName>PerspectiveProjection</apiName><shortdesc>
     Создает экземпляр объекта PerspectiveProjection.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata><asCustoms><helpid>
     </helpid></asCustoms></prolog><apiConstructorDetail><apiConstructorDef><apiAccess value="public"/></apiConstructorDef><apiDesc>
     Создает экземпляр объекта PerspectiveProjection. 
     
     </apiDesc></apiConstructorDetail></apiConstructor><apiOperation id="flash.geom:PerspectiveProjection:toMatrix3D"><apiName>toMatrix3D</apiName><shortdesc>
     Возвращает базовый объект Matrix3D экранного объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiReturn><apiDesc>Базовый объект Matrix3D. 
     
     </apiDesc><apiOperationClassifier>flash.geom:Matrix3D</apiOperationClassifier></apiReturn></apiOperationDef><apiDesc>
     Возвращает базовый объект Matrix3D экранного объекта.  
     
     <p>В экранном объекте, например корневом объекте, можно создать объект PerspectiveProjection без необходимости определения свойства Matrix3D для его преобразования. На самом деле, объект PerspectiveProjection или Matrix3D следует использовать для определения перспективного преобразования. Если при использовании объекта PerspectiveProjection требовался объект Matrix3D, метод <codeph>toMatrix3D()</codeph> позволяет получить базовый объект Matrix3D экранного объекта. Например, метод <codeph>toMatrix3D()</codeph> можно использовать вместе с методом <codeph>Utils3D.projectVectors()</codeph>.</p> 
     
     </apiDesc></apiOperationDetail><related-links><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link></related-links></apiOperation><apiValue id="flash.geom:PerspectiveProjection:fieldOfView:set"><apiName>fieldOfView</apiName><shortdesc>
     Указывает угол поля обзора, в градусах со значением между 0 и 180, в трехмерном пространстве.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>Number</apiValueClassifier><apiTipTexts><apiTipText>Указывает угол поля обзора, в градусах со значением между 0 и 180, в трехмерном пространстве.
     
     </apiTipText></apiTipTexts></apiValueDef><apiDesc>
     Указывает угол поля обзора, в градусах со значением между <codeph>0</codeph> и <codeph>180</codeph>, в трехмерном пространстве. Это значение определяет степень применения перспективного преобразования и искажения к трехмерному экранному объекту с ненулевой координатой по оси z.
     
     <p>Значение, близкое к <codeph>0</codeph> градусов, означает, что двухмерные координаты x и y экрана и трехмерные координаты x, y и z примерно одинаковы, а искажение незначительное или отсутствует. Другими словами, при маленьком угле экранный объект, движущийся вниз по оси z, имеет визуально почти тот же размер и незначительное перемещение. </p>
     
     <p>Значение, близкое к <codeph>180</codeph> градусам, производит эффект объектива типа «рыбий глаз»: точки с координатой по оси <codeph>z</codeph> меньше <codeph>0</codeph> увеличены, а точки с координатой по оси <codeph>z</codeph> больше <codeph>0</codeph> уменьшены. При большом значении угла экранный объект, перемещающийся вниз по оси z, быстро изменяется в размерах и перемещается на значительное расстояние. Если для поля обзора задано значение <codeph>0</codeph> или <codeph>180</codeph>, изображение отсутствует на экране.</p>
     
     </apiDesc></apiValueDetail></apiValue><apiValue id="flash.geom:PerspectiveProjection:focalLength:get"><apiName>focalLength</apiName><shortdesc>
     Расстояние между исходным положением наблюдателя или точкой просмотра (0,0,0) и экранным объектом, расположенным на оси z.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>Number</apiValueClassifier></apiValueDef><apiDesc>
     Расстояние между исходным положением наблюдателя или точкой просмотра (0,0,0) и экранным объектом, расположенным на оси z. Во время перспективного преобразования значение <codeph>focalLength</codeph> вычисляется динамически с использованием значений угла поля обзора и соотношения сторон рабочей области (ширина рабочей области, деленная на ее высоту).
     
     </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#PerspectiveProjection/fieldOfView"><linktext>fieldOfView</linktext></link></related-links></apiValue><apiValue id="flash.geom:PerspectiveProjection:projectionCenter:set"><apiName>projectionCenter</apiName><shortdesc>
     Двумерная точка, представляющая центр проекции, точку схода, экранного объекта.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiProperty/><apiAccess value="public"/><apiDynamic/><apiValueAccess value="readwrite"/><apiValueClassifier>flash.geom:Point</apiValueClassifier></apiValueDef><apiDesc>
     Двумерная точка, представляющая центр проекции, точку схода, экранного объекта. 
     
     <p>Свойство <codeph>projectionCenter</codeph> является смещением к точке регистрации по умолчанию, расположенной в верхнем левом углу рабочей области, точка с координатами (0,0). Центр преобразования проекции по умолчанию находится в центре рабочей области, что обозначает, что трехмерные экранные объекты будут исчезать в центре рабочей области при перемещении в обратном направлении по оси z.</p>
     
     </apiDesc></apiValueDetail></apiValue></apiClassifier><apiClassifier id="flash.geom:Orientation3D"><apiName>Orientation3D</apiName><shortdesc>
В классе Orientation3D перечислены значения констант, представляющие стиль ориентации объекта Matrix3D.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiFinal/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
В классе Orientation3D перечислены значения констант, представляющие стиль ориентации объекта Matrix3D. Тремя типами ориентации являются: эйлеровы углы, межосевые углы и кватернион. Методы <codeph>decompose</codeph> и <codeph>recompose</codeph> объекта Matrix3D используют один из перечисленных типов для определения вращательных составляющих объекта Matrix.

</apiDesc></apiClassifierDetail><related-links><link href="flash.geom.xml#Matrix3D"><linktext>flash.geom.Matrix3D</linktext></link><link href="flash.geom.xml#Transform"><linktext>flash.geom.Transform</linktext></link><link href="flash.geom.xml#PerspectiveProjection"><linktext>flash.geom.PerspectiveProjection</linktext></link></related-links><apiValue id="flash.geom:Orientation3D:AXIS_ANGLE"><apiName>AXIS_ANGLE</apiName><shortdesc>
    Для определения ориентации межосевых улов используется комбинация оси и угла.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiAccess value="public"/><apiStatic/><apiData>axisAngle</apiData><apiValueClassifier>String</apiValueClassifier></apiValueDef><apiDesc>
    Для определения ориентации межосевых улов используется комбинация оси и угла. Линия или вектор, идущий от центра трехмерного шара к поверхности, является примером оси. Ось, вокруг которой вращается объект, является единичным вектором, который представляет любое возможное направление в трехмерном пространстве. Угол представляет величину поворота относительно вектора. Направление определяет расположение лицевой стороны экранного объекта, а угол поворота – направление лицевой стороны вверх. Объекты Vector3D и Matrix3D можно использовать для определения различных преобразований матрицы, а также для определения важных значений для трехмерного программирования, например расстояние до пересечения двух объектов, которое можно использовать для обнаружения простого столкновения трехмерных объектов.
    
    <p>В методах <codeph>Matrix3D.appendRotation()</codeph> и <codeph>Matrix3D.prependRotation()</codeph> используется ориентация межосевого угла.</p>
    
    </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Matrix3D/decompose()"><linktext>flash.geom.Matrix3D.decompose()</linktext></link><link href="flash.geom.xml#Matrix3D/recompose()"><linktext>flash.geom.Matrix3D.recompose()</linktext></link></related-links></apiValue><apiValue id="flash.geom:Orientation3D:EULER_ANGLES"><apiName>EULER_ANGLES</apiName><shortdesc> 
    По умолчанию для методов decompose() и recompose() используется ориентация типа эйлеровы углы, которая определяет ориентацию с тремя различными углами поворота вокруг каждой оси.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiAccess value="public"/><apiStatic/><apiData>eulerAngles</apiData><apiValueClassifier>String</apiValueClassifier><apiTipTexts><apiTipText>Определяет ориентацию с тремя различными углами поворота вокруг каждой оси.
    
    </apiTipText></apiTipTexts></apiValueDef><apiDesc> 
    По умолчанию для методов <codeph>decompose()</codeph> и <codeph>recompose()</codeph> используется ориентация типа эйлеровы углы, которая определяет ориентацию с тремя различными углами поворота вокруг каждой оси. Как правило, за поворотом вокруг оси x следует поворот вокруг оси y, за которым следует поворот вокруг оси z. 
    
    <p>Эйлеровы углы могут иногда приводить к ошибкам анимации из за таких проблем, как сингулярность при вращении вокруг оси x или блокировка вращения. Например, так как при работе с эйлеровыми углами каждая ось обрабатывается отдельно, блокировка вращения может произойти при вращении вокруг двух и более осей. Оси оказываются расположенными параллельно друг другу, что приводит к получению непредвиденных результатов.</p>
    
    <p>Свойства вращения оси экранного объекта выполняют вращение по типу эйлеровых углов.</p>
    
    </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Matrix3D/decompose()"><linktext>flash.geom.Matrix3D.decompose()</linktext></link><link href="flash.geom.xml#Matrix3D/recompose()"><linktext>flash.geom.Matrix3D.recompose()</linktext></link></related-links></apiValue><apiValue id="flash.geom:Orientation3D:QUATERNION"><apiName>QUATERNION</apiName><shortdesc>
    В ориентации кватерниона используются комплексные числа.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="1.5"/></apiVersion></asMetadata></prolog><apiValueDetail><apiValueDef><apiAccess value="public"/><apiStatic/><apiData>quaternion</apiData><apiValueClassifier>String</apiValueClassifier><apiTipTexts><apiTipText>Ориентация кватерниона представляется тремя осями (x,y,z) и углом поворота (w).
    
    </apiTipText></apiTipTexts></apiValueDef><apiDesc>
    В ориентации кватерниона используются комплексные числа. Ориентация кватерниона представляется тремя осями поворота (x,y,z) и углом поворота (w). Кватернион обеспечивает кратчайший, наиболее эффективный контур вращения. Он также позволяет выполнять сглаживание без эффекта «шарнирного замка». Блокировка вращения может произойти, когда во время вращения вокруг двух или более осей оси оказываются расположенными параллельно друг другу, что приводит к получению непредвиденных результатов. 
    
    <p>В методе <codeph>Matrix3D.interpolate()</codeph> используется кватернион.</p> 
    
    </apiDesc></apiValueDetail><related-links><link href="flash.geom.xml#Matrix3D/decompose()"><linktext>flash.geom.Matrix3D.decompose()</linktext></link><link href="flash.geom.xml#Matrix3D/recompose()"><linktext>flash.geom.Matrix3D.recompose()</linktext></link></related-links></apiValue></apiClassifier></apiPackage>