我们直接说新增的代码。
下面定义了一个away3d自带的几何体plane也就是一个"板子"。
var plane:PlaneGeometry = new PlaneGeometry(100,100); //定义一个plane,也就是一个平面对象 var color:ColorMaterial = new ColorMaterial(0xffaacc); //定义一个彩色材质 mesh = new Mesh(plane,color); //用网格包裹( Mesh也是容器可以直接把away3d里的显示对象加入显示)。 mesh.rotationX = -90; //因为plane只有一面可见,初始化的时候摄像机是对着不可见的。 view.scene.addChild(mesh);
我们每次运行的代码运行完毕后,都是需要绘制到屏幕上去的。
view.render(); //刷新函数。 把东西绘制到屏幕
下面是完整的代码
package{ import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.materials.ColorMaterial; import away3d.primitives.PlaneGeometry; import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { private var view:View3D; //兴建一个view3d的变量 private var mesh:Mesh; public function Main() { initView(); initPlane(); } private function initView():void{ view = new View3D(); addChild(view); //加入舞台显示 addEventListener(Event.ENTER_FRAME,enterFrame); } private function initPlane():void{ var plane:PlaneGeometry = new PlaneGeometry(100,100); //定义一个plane var color:ColorMaterial = new ColorMaterial(0xffaacc); //定义一个彩色材质 mesh = new Mesh(plane,color); //用网格包裹 mesh.rotationX = -90; //因为plane只有一面可见,初始化的时候摄像机是对着不可见的。 view.scene.addChild(mesh); //把网格加入view世界显示。 } private function enterFrame(e:Event):void{ view.render(); //刷新函数。 把东西绘制到屏幕 } }}
如果有兴趣的话,可以自己尝试在view.render();加一句代码,让plane转起来。
private function enterFrame(e:Event):void{ view.render(); //刷新函数。 把东西绘制到屏幕 mesh.rotationX++; }
away3d还有很多内置的简单几何体, 都在away3d.primitives.路径下。
替换几何体只需要替换代码var plane:PlaneGeometry = new PlaneGeometry(100,100);
如: var cube:CubeGeometry = new CubeGeometry(100,100,100);