package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import org.papervision3d.cameras.FreeCamera3D; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.materials.special.ParticleMaterial; import org.papervision3d.objects.special.ParticleField; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; [SWF(backgroundColor="0x000000", width="800", height="600", frameRate="30")] public class particles extends Sprite { private var renderer:BasicRenderEngine private var scene:Scene3D; private var camera:FreeCamera3D; private var viewport:Viewport3D; // 3d Objects private var pointLight:PointLight3D; public function particles() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; renderer = new BasicRenderEngine(); scene = new Scene3D(); camera = new FreeCamera3D(); viewport = new Viewport3D(0, 0, true, false); addChild(viewport); camera.z = -350; camera.focus = 1100; camera.zoom = 1; pointLight = new PointLight3D(true); scene.addChild(pointLight); pointLight.moveUp(350); pointLight.moveRight(350); createParticles(); stage.addEventListener(Event.ENTER_FRAME, handleEnterFrame); } private function handleEnterFrame(e:Event):void { camera.x=camera.y=camera.z=0; camera.yaw(.5); camera.moveBackward(1000); renderer.renderScene(scene, camera, viewport); } private function createParticles():void { //Create a new particle material; var pm:ParticleMaterial = new ParticleMaterial(0xFFFFFF,1); //Create a new particlefield. var particleField:ParticleField = new ParticleField(pm, 2000, 5000, 5000, 5000); scene.addChild(particleField); } } }