away3d显示Plane(基础 二)
我们直接说新增的代码。
下面定义了一个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);
浙公网安备 33010602011771号