在上一篇上讲到了开发工具及包需要的包,下面让我们动手来实现一下第一个3D场景。
1、在eclipse中新建一个flex项目,添加Papervision3D.swc包到flex_libs中,设置好目录结构。上图
2、在as包下添加一个as类继承UIComponent,命名为Map3D.as
3、实现第一个3D场景,在场景中添加一个Panel平面,并让这个平面绕Z轴旋转,上代码:
package com.neil { import flash.events.Event; import mx.core.UIComponent; import org.papervision3d.cameras.Camera3D; import org.papervision3d.events.InteractiveScene3DEvent; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.objects.primitives.Plane; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; public class MainView extends UIComponent { private var viewport:Viewport3D;//添加一个3D窗口,所有3D对象将透过这个窗口观察 private var scene:Scene3D;//添加一个3D场景,跟flash中的舞台含义相似 private var camera:Camera3D; private var renderer:BasicRenderEngine; private var material:ColorMaterial; private var plane:Plane; public function MainView() { init(); } private function init():void{ viewport=new Viewport3D(640,480,false,true); addChild(viewport); scene=new Scene3D(); camera=new Camera3D(); renderer=new BasicRenderEngine(); material=new ColorMaterial(0xcc00FF); material.interactive=true; material.doubleSided=true; plane=new Plane(material); scene.addChild(plane); addEventListener(Event.ENTER_FRAME,onEnterFrame); } private function onEnterFrame(e:Event):void{ plane.yaw(2);//设置动画速度 renderer.renderScene(scene,camera,viewport); } } }
添加以上代码后,要需要在前台引用这个类,就可以实现一个Hellow 3D实例了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。