// forked from sake's PV3Dその2 /*- remove しているの きえて くれない。せん けしたい */ package { import caurina.transitions.Tweener; import flash.display.Sprite; import flash.events.Event; import org.papervision3d.cameras.Camera3D; import org.papervision3d.core.geom.Lines3D; import org.papervision3d.materials.special.LineMaterial; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; [SWF(width="465", height="465", backgroundColor="0x000000", frameRate="40")] public class PV3D_sample02 extends Sprite { private var container:Sprite; private var viewport:Viewport3D; private var scene:Scene3D; private var camera:Camera3D; private var renderer:BasicRenderEngine; private var rootNode:DisplayObject3D; private const a:Number=20; private const m:Number=1; private const n:Number=20; public function PV3D_sample02() { container=new Sprite(); addChild(container); container.x=stage.stageWidth/2; container.y=stage.stageHeight/2; viewport=new Viewport3D(0, 0, true, true); scene=new Scene3D(); camera=new Camera3D(); renderer=new BasicRenderEngine(); rootNode=scene.addChild(new DisplayObject3D("rootNode")); addEventListener(Event.ENTER_FRAME, onFrame); addChild(viewport); camera.zoom=16; camera.focus=100; camera.target=DisplayObject3D.ZERO; var dtime:Number=0; var lm:LineMaterial; var c:int; var xx:Number=a; var yy:Number=0; var zz:Number=0; var xxx:Number; var yyy:Number; var zzz:Number; var line:Lines3D; for(var i:Number=0; i <= 12 * Math.PI; i+=0.02) { xxx=a * Math.cos(n * i); yyy=a * Math.sin(n * i); zzz=a * i; lm=new LineMaterial(0xFF0000, 1); line=new Lines3D(lm); line.addNewLine(0.7, xx, yy, zz, xxx, yyy, zzz); rootNode.addChild(line, "line" + i.toString()); line.scale=0; Tweener.addTween(line, {scale:1, time:2, delay:dtime}); dtime+=0.04; c++; xx=xxx; yy=yyy; zz=zzz; } dtime=dtime/4; for(var ii:Number=0; ii <= 12 * Math.PI; ii+=0.02) { var ll:Lines3D=rootNode.getChildByName("line" + ii.toString()) as Lines3D; Tweener.addTween(ll, {scale:-1, time:2, delay:dtime, onComplete:function():void{rootNode.removeChild(ll);}}); dtime+=0.04; } } public function onFrame(e:Event):void { rootNode.rotationX+=0.5; rootNode.rotationY+=0.5; renderer.renderScene(scene, camera, viewport); } } } forked from: PV3Dその2