forked from: PV3Dその2
forked from PV3Dその2 (diff: 68)
- remove しているの きえて くれない。せん けしたい
ActionScript3 source code
/**
* Copyright s26 ( http://wonderfl.net/user/s26 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/s104
*/
// 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);
}
}
}