DNA 菜单 x pv3d
星期四, 8月 20th, 2009still from the flash blog,改写了一下
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.special.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.special.*;
import org.papervision3d.materials.shaders.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.lights.*;
import org.papervision3d.render.*;
import org.papervision3d.view.*;
import org.papervision3d.events.*;
import org.papervision3d.core.utils.*;
import org.papervision3d.objects.parsers.Collada;
import org.papervision3d.core.utils.virtualmouse.VirtualMouse;
var viewport:Viewport3D=new Viewport3D(0,0,true,true);
addChild(viewport);
viewport.buttonMode=true;
var renderer:BasicRenderEngine = new BasicRenderEngine();
var scene:Scene3D = new Scene3D();
var cam:Camera3D = new Camera3D();
cam.zoom=25;
// Create camera center
var pc:Plane = new Plane();
pc.visible=false;
cam.target=pc;
// Spiral properties
var num:int=100;
var numOfRotations:Number=5;
var anglePer:Number = ((Math.PI*2) * numOfRotations) / num;
var yPos:Number=0;
// Create the planes
var pa:Array = new Array();
for (var i:uint=0; i<num; i++) {
var cm:BitmapAssetMaterial=new BitmapAssetMaterial("air");
cm.oneSide=false;
var p:Plane=new Plane(cm,100,100);
p.x=Math.cos(i*anglePer)*550;
p.z=Math.sin(i*anglePer)*550;
p.y=yPos+=50;
p.rotationY = (-i*anglePer) * (180/Math.PI) + 270;
scene.addChild(p);
}
// Create the render loop
addEventListener(Event.ENTER_FRAME, render);
var angle:Number=0;
function render(e:Event):void {
var dist:Number = ((stage.mouseY) - stage.stageHeight * 0.5) * -0.1;
var dist2:Number = ((stage.mouseX) - stage.stageWidth * 0.5) * 0.0005;
angle+=dist2;
cam.x=Math.cos(angle)*1000;
cam.z=Math.sin(angle)*1000;
cam.y+=dist;
if (cam.y<369) {
cam.y=369;
}
if (cam.y>4755) {
cam.y=4755;
}
pc.y=cam.y;
renderer.renderScene(scene, cam, viewport);
}

