前面<<三维世界的四个基本构件>>将Flash3D影片比喻成电视,力求能形象地阐述Away3D三维世界四个必备"物件"之间逻辑关系。其中"视口"被比喻成电视机屏幕。我们观众就是通过这个屏幕才能看到用摄影机拍摄下来的景物(3D物体)。本篇进一步讲解View3D几个重要的参数设置。
创建View3D
Away3D里视口的类名是View3D。与as里创建任何实例一样,先导入View3D类,然后new一下:
//导入View3D类。
Import away3d.containers.View3D;
//设置flash影片大小(在flash可以在修改文档里进行设置)。
【SWF(width="500",height="400"】
//new出一个视口
Var view:View3D=new View3D(camera:cam,scene:sce,x:250,y:200 );
上句我们看到View3D里有几个参数:camera:cam,scene:sce,x:250,y:200。下面对这四个属性作个解释。
视口自带的摄像机与场景
前面的笔记里讲到: Camera, Scene。 与View 和 3D模型并称为三维世界的四个基本构件。在前面的例子中我们用到的Camera, Scene都是新建出来的,实际上,视口View3D自带了摄像机、场景。
1.Var view:View3D=new View3D(camera:cam,scene:sce,x:250,y:200 );
2.Cam.z=-1000;
这句在视口的构造函数里指定使用View 自带的摄像机与场景,且分别取名为擦cam,sce。还有另一种使用自带的默认摄像机与场景:
3.Var view:View3D=new View3D(x:250,y:200 );
4.View.camera.z=-1000;
1,2与3,4效果一样,只是句1给视口自带的Camera命名为Cam,而句4用.View.camera直接引用。同理我们也可以这样应用自带默认的场景:
View.scene.addChild();
设置视口位置
如这句:Var view:View3D=new View3D(camera:cam,scene:sce,x:250,y:200);将视口放在Flash影片放在点(250,200)上。一般我们希望视口总处于flash影片中央,所以尺寸为500×400的影片,我们要将x,y设为250,200了。
最后我们讲讲视口大小的设置。
设置视口大小
根据不同家庭的不同需要,电视机屏幕有大有小,高宽比也不一样,有5:4、有16:9。同样,有时候我们也需要对视口的高宽进行设置。但视口大小的设置很"非典型"。在As里我们设置一个对象的尺寸都是通过设置对象的Width与Height两个属性的值来实现的,但视口没有Width与Height属性(如果你在代码里设置view.width与view.height不会报错,但不会起作用),但是我们可以用clipping属性对视口进行裁剪从而实现设置其高宽目的。
import away3d.core.clip.RectangleClipping;
var w:Number=300;
var h:Number=200;
//新建一个RectangleClipping类实例myclip,我们就是用myclip裁剪视口的。
var myClip:RectangleClipping = new RectangleClipping({minX:-w/2,minY:-h/2,maxX:w/2,maxY:h/2});
view.clipping = myClip;
这样视口就被设置为宽300px高200px的矩形区域。
原文:http://www.cnblogs.com/nooon/archive/2009/05/21/1486696.html