PerspectiveProjection类提供了一种在 3D 空间中移动显示对象时应用基本透视的简单方式,它有下列三个主要属性:
fieldOfView 视野属性
projectionCenter 投影中心属性
focalLength 焦距属性
默认的 PerspectiveProjection 对象是基于视野和舞台的高宽比(尺寸)为 root 对象的透视转换定义的框架。要改变
透视投影设置,可以通过对root
对象的DisplayObject.transform
属性来更改。但在编程时要改变这些属性,在文档类的构造函数中直接设置是不起作用的,因为这时swf文件还没有完全载入,也就是root显示对象还未完全载入完成,所以要通过this.loaderInfo.addEventListener (Event.COMPLETE, init)方式监听载入完成事件,在swf载入完成后按如下方式来设置:
this.transform.perspectiveProjection.projectionCenter = new Point(0,0);
注:类似的与根显示对象相关的部分其他基本属性的获取和修改都有这个问题需要注意。
要为其他显示对象设置这些透视属性,不能直接用类似上面的DisplayObject.transform.perspectiveProjection.projectionCenter = new Point(0,0)这种直接赋值方式,因为DisplayObject.transform.perspectiveProjection为空,包括root显示对象在内的其他显示对象的透视属性设置可以通过如下方式设置:
1 var p=new PerspectiveProjection();
2 p.projectionCenter = new Point(0,0);
3 p.fieldOfView=55;
4 DisplayObject.transform.perspectiveProjection=p;
2 p.projectionCenter = new Point(0,0);
3 p.fieldOfView=55;
4 DisplayObject.transform.perspectiveProjection=p;
这样你可以为不同的显示对象设置不同的透视投影设置。