zoukankan      html  css  js  c++  java
  • Away3d学习笔记4View3D(视口)

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

  • 相关阅读:
    COCOS2D-X中UI动画导致闪退与UI动画浅析
    使用cocos2d-x3.4结合cocos2.1.5制作小游戏《亲亲小熊》
    algorithm 学习之 for_each
    cocos2dx 3.2 Touch Listen和menu回调实现截屏
    Lua 中string.gsub(sourceString, pattern, replacementString) 返回值有两个
    python 装饰器模式 我的理解
    Https SSL Knowledge & how to get a self-signed certificate on ubuntu.
    公钥和私钥的理解
    Openwrt UCI 快捷切换SS 配置
    iptables ipset 实用命令
  • 原文地址:https://www.cnblogs.com/nooon/p/1486696.html
Copyright © 2011-2022 走看看