下面几期会发布away3d相关的一些基本内容,away3d的类库是开源的可以在网上下载。本节介绍基本的用away3d绘制一个小球,代码如下:
package
{
import flash.display.Sprite;
import flash.display.MovieClip;
import away3d.containers.View3D;
import away3d.containers.Scene3D;
import away3d.cameras.Camera3D;
import flash.events.Event;
import away3d.materials.ColorMaterial;
import away3d.primitives.SphereGeometry;
import away3d.entities.Mesh;
import away3d.lights.DirectionalLight;
import away3d.materials.lightpickers.StaticLightPicker;
/**
* 创建away3d的3D世界 首先我们得了解away3d的几个基本类 也是每次我们做的时候必须初始化的 View3D ,Scene3D ,Camera3D。这三个类我做下简单的解释
1 View3D 我们可以理解为一个窗子。就像我们站在屋外可以通过窗子看到屋内的家具。同理 如果同时有多扇窗子,我们就可以看到多个屋内环境。在AWAY3D里面 我也可以通过创建多个View3D来看到这个3D世界。
2 Scene3D 我还是拿屋子做比较。Scene3D就类似这个屋内这个空间。因为这个空间的存在。我们才能向里面放置家具。
3 Camera3D 这个就类似我们的眼睛。因为它我们才看到这个世界。我们改变Camera3D 的坐标 遍可以从不同角度来观看这个3D世界
* */
public class Away3DLearn extends Sprite {
private var _view:View3D;
private var _scene:Scene3D;
private var _camera:Camera3D;
private var _material:ColorMaterial;
private var _sphere:SphereGeometry;
private var _sphereMesh:Mesh;
private var _dl:DirectionalLight;
private var _dl2:DirectionalLight;
private var _light:StaticLightPicker;
public function Away3DLearn()
{
_view=new View3D();
addChild(_view);
_scene=new Scene3D();
_view.scene=_scene;
_camera=new Camera3D();
_view.camera=_camera;
_material=new ColorMaterial(0xffffff);
_sphere=new SphereGeometry(100,32,32);
_sphereMesh=new Mesh(_sphere,_material);
_view.scene.addChild(_sphereMesh);
_dl=new DirectionalLight();
_dl2=new DirectionalLight(-1,-1,1);
_dl2.ambient=.1
_light=new StaticLightPicker([_dl2]);
_sphereMesh.material.lightPicker=_light;
_view.scene.addChild(_dl);
this.addEventListener(Event.ENTER_FRAME,enterFrameFunction)
}
private function enterFrameFunction(evt:Event):void
{
_view.render();
}
}
}