Paper Plane



package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import gs.TweenMax;

import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;

import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
import org.papervision3d.objects.primitives.PaperPlane;

public class Paper3D extends Sprite
{
private var total:int;
private var viewport:Viewport3D;
private var scene:Scene3D;
private var camera:Camera3D;
private var render:BasicRenderEngine;
private var light: PointLight3D;
private var light2: PointLight3D;
private var mat:FlatShadeMaterial;
private var container:DisplayObject3D;
private var num:int;

private var primitives:PaperPlane;
private var objArray:Array;
private var time:Timer;

public function Paper3D():void
{
total=100;
objArray=new Array ;
viewport=new Viewport3D(800,500,false,true);
addChild(viewport);
scene = new Scene3D ;
light = new PointLight3D;
light2 = new PointLight3D;
light.moveUp(100);
light2.moveDown(100);
camera = new Camera3D ;
render = new BasicRenderEngine ;
container = new DisplayObject3D;

time = new Timer(3000);
time.addEventListener(TimerEvent.TIMER, cameraRun);
time.start();
for (var i:int=0; i<total; i++)
{
mat = new FlatShadeMaterial(light,Math.random()*0xFFFFFF)
primitives = new PaperPlane(mat);
primitives.yaw(180);
scene.addChild(primitives);
primitives.x=Math.random()*3000-1500;
primitives.y=Math.random()*2000-1000;
primitives.z = Math.random() * 3000 - 1500;
primitives.scale = (Math.random() * 2) + 0.5;
objArray.push(primitives);
}
camera.target = container;
addEventListener(Event.ENTER_FRAME, run);
}

function cameraRun(e:TimerEvent):void
{
num = Math.random() * total;
TweenMax.to (camera, 5, { x:Math.random() * 1000, y:Math.random() * 1000, z:Math.random() * 1000 } );
TweenMax.to (light, 10 , { x:Math.random() * 1000, y:Math.random() * 1000, z:Math.random() * 1000 } );
TweenMax.to (light2, 6 , { x:Math.random() * 1000, y:Math.random() * 1000, z:Math.random() * 1000 } );
camera.target = objArray[num];
}
function run(e:Event):void
{
//for (var j:int; j<total; j++)
//{
//objArray[j].z-=10;
//}
render.renderScene(scene,camera,viewport);
}
}
}

0 Comments:

Post a Comment

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More