flash.geom
public class PerspectiveProjection
继承PerspectiveProjection Inheritance Object

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

利用 PerspectiveProjection 类,可以轻松分配或修改显示对象及其所有子级的透视转换。对于更加复杂的或自定义的透视转换,请使用 Matrix3D 类。PerspectiveProjection 类提供了基本的三维演示属性,而 Matrix3D 类提供了针对显示对象的三维演示的更细化的控制。

投影是一种用于在二维空间内表示三维对象的方式,例如,投影到计算机屏幕上的立方体。透视投影使用视见平截头体(四棱锥)来建模并将三维世界及其对象投影到屏幕上。随着视见平截头体远离视点原点,它会变得越来越宽。视点原点可以是面向屏幕的摄像头或观察者的眼睛。投影透视会在深度和距离上产生三维错觉,其中接近屏幕的对象比远离屏幕的对象要大得多。

平截头体视见区域

默认的 PerspectiveProjection 对象是基于视野和舞台的高宽比(尺寸)为 root 对象的透视转换定义的框架。投影中心(即消失点)将设置为舞台中心,这意味着当三维显示对象沿 z 轴后移时,这些对象会朝着舞台中心消失。默认视点位于正向 z 轴向下的点 (0,0)。y 轴朝下指向屏幕底部。可以访问 root 显示对象的透视投影设置,并通过 root 对象的 DisplayObject.transform 属性来更改 perspectiveProjection 属性的视野和投影中心属性。

也可以通过父级透视投影为显示对象设置不同的透视投影设置。首先,创建一个 PerspectiveProjection 对象并将设置其 fieldOfViewprojectionCenter 属性。紧接着,使用 DisplayObject.transform 属性将 PerspectiveProjection 对象分配给父级显示对象。然后,指定的投影矩阵和转换将应用于显示对象的所有三维子级。

另请参见

flash.display.DisplayObject.transform
flash.geom.Transform
flash.geom.Matrix3D
flash.geom.Utils3D


公共属性
 属性定义方
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  fieldOfView : Number
为三维视野指定一个角度(介于 0 度到 180 度之间)。
PerspectiveProjection
  focalLength : Number
眼睛或视点的原点 (0,0,0) 与位于 z 轴的显示对象之间的距离。
PerspectiveProjection
  projectionCenter : Point
表示投影中心的二维点,它是显示对象的消失点。
PerspectiveProjection
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
公共方法
 方法定义方
  
创建 PerspectiveProjection 对象的实例。
PerspectiveProjection
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
设置循环操作动态属性的可用性。
Object
  
返回显示对象的基本 Matrix3D 对象。
PerspectiveProjection
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
属性详细信息
fieldOfView属性
fieldOfView:Number  [读写]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

为三维视野指定一个角度(介于 0 度到 180 度之间)。此值可确定应用于具有非零 z 坐标的三维显示对象的透视转换和扭曲的强度。

若角度接近于 0,则表示屏幕的二维 x 和 y 坐标与三维 x、y 和 z 坐标大致相同,只不过具有少许扭曲或无扭曲。换句话说,若角度较小,则沿 z 轴下移的显示对象看起来大小不变且移动距离很小。

若值接近于 180 度,则会产生鱼眼镜头效果,即 z 值小于 0 的位置将被放大,而 z 值大于 0 的位置将被最小化。若角度较大,则沿 z 轴下移的显示对象看起来大小变化很快且移动距离很大。如果视野设置为 0180,则屏幕上不会显示任何内容。



实现
    public function get fieldOfView():Number
    public function set fieldOfView(value:Number):void
focalLength属性 
focalLength:Number  [读写]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

眼睛或视点的原点 (0,0,0) 与位于 z 轴的显示对象之间的距离。在透视转换过程中,将使用视野的角度和舞台的高宽比(舞台宽度除以舞台高度)来自动计算 focalLength



实现
    public function get focalLength():Number
    public function set focalLength(value:Number):void

另请参见

projectionCenter属性 
projectionCenter:Point  [读写]

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

表示投影中心的二维点,它是显示对象的消失点。

projectionCenter 属性是相对于默认注册点(即舞台左上角的点 (0,0))的偏移量。默认的投影转换中心位于舞台中间,这意味着当三维显示对象沿 z 轴后移时,这些对象会朝着舞台中心消失。



实现
    public function get projectionCenter():Point
    public function set projectionCenter(value:Point):void
构造函数详细信息
PerspectiveProjection()构造函数
public function PerspectiveProjection()

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

创建 PerspectiveProjection 对象的实例。

方法详细信息
toMatrix3D()方法
public function toMatrix3D():Matrix3D

语言版本: ActionScript 3.0
运行时版本: Flash Player 10, AIR 1.5

返回显示对象的基本 Matrix3D 对象。

显示对象(例如 root 对象)可以包含 PerspectiveProjection 对象,而无需为其转换定义 Matrix3D 属性。实际上,将使用 PerspectiveProjection 或 Matrix3D 对象指定透视转换。如果在使用 PerspectiveProjection 对象时需要 Matrix3D 对象,则 toMatrix3D() 方法可以检索显示对象的基本 Matrix3D 对象。例如,toMatrix3D() 方法可以与 Utils3D.projectVectors() 方法配合使用。

返回
Matrix3D — 基本 Matrix3D 对象。

另请参见