Away3d学习笔记4-View3D(视口)

前面<<三维世界的四个基本构件>>将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的矩形区域。

posted @ 2009-05-21 23:42  nooon  阅读(3531)  评论(2编辑  收藏  举报