forked from: [PV3D] SpringCamera3D Demo

by hacker_owxqkb_k forked from [PV3D] SpringCamera3D Demo (diff: 34)
♥0 | Line 50 | Modified 2009-11-06 13:13:47 | MIT License
play

ActionScript3 source code

/**
 * Copyright hacker_owxqkb_k ( http://wonderfl.net/user/hacker_owxqkb_k )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/oxu2
 */

// forked from clockmaker's [PV3D] SpringCamera3D Demo
package 
{
	import flash.events.*;
	import flash.geom.*;
	import flash.utils.*;
	import caurina.transitions.Tweener;
	import org.papervision3d.cameras.SpringCamera3D;
	import org.papervision3d.core.clipping.FrustumClipping;
	import org.papervision3d.core.geom.renderables.VectorShapeRenderable;
	import org.papervision3d.core.math.Number3D;
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.objects.DisplayObject3D;
	import org.papervision3d.objects.primitives.*;
	import org.papervision3d.view.BasicView;

	public class Random extends BasicView
	{
		static public const OBJ_MAX:int = 100;
		private var springCamera:SpringCamera3D;
		
		public function Random():void 
		{
			stage.frameRate = 60;    
			var light:PointLight3D = new PointLight3D();
			var material:FlatShadeMaterial = new FlatShadeMaterial(light, 0xFFFFFF, 0x000000);
			var list:Vector.<DisplayObject3D> = new Vector.<DisplayObject3D>(OBJ_MAX, true);
			var len:uint = 3000;
			
			for (var i:int = 0; i < OBJ_MAX; i++) 
			{
				var cube:Cube = new Cube(new MaterialsList({all:material}), 50, 50, 50, 1, 1, 1);
				
				cube.x = len * Math.random() - len / 2;
				cube.y = len * Math.random() - len / 2;
				cube.z = len * Math.random() - len / 2;
				
				cube.rotationX = 360 * Math.random();
				cube.rotationY = 360 * Math.random();
				cube.rotationZ = 360 * Math.random();
				
				list[i] = scene.addChild(cube);
			}
			
			startRendering()
			
			// BackGround 
			var bgMatrix:Matrix = new Matrix();
			bgMatrix.rotate(90 * Math.PI / 180);
			graphics.beginGradientFill("linear", [0xFFFFFF, 0x001122], [100, 100], [0, 255], bgMatrix);
			graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
		}
		
		/**
		 * Render Method for Spring Camera
		 */
		override protected function onRenderTick(event:Event=null):void
		{
			renderer.renderScene(scene, springCamera, viewport);
		}
	}
}

Forked