Flash勉強会
/**
* Copyright cielan ( http://wonderfl.net/user/cielan )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9Guj
*/
package {
import __AS3__.vec.Vector;
import flash.events.Event;
import flash.filters.*;
import frocessing.color.ColorHSV;
import org.papervision3d.cameras.*;
import org.papervision3d.core.geom.Lines3D;
import org.papervision3d.core.geom.renderables.Line3D;
import org.papervision3d.core.geom.renderables.Vertex3D;
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.special.LineMaterial;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.view.BasicView;
[SWF(backgroundColor=0x000000)]
public class FlashTest extends BasicView
{
private var sphere:Sphere;
private var lines:Lines3D;
private var p:Number = 5.0, r:Number = 25.0, b:Number = 8.0/3.0, D:Number = 0.01;
private var toX:Number, toY:Number, toZ:Number;
private var hsv:ColorHSV;
private var glow:GlowFilter;
private var particles:Vector.<Plane>;
public function FlashTest()
{
super(640, 480, true, false, CameraType.SPRING);
hsv = new ColorHSV(0, 1, 1);
glow = new GlowFilter(0, 1, 8, 8, 2);
toX = toY = toZ = 1;
particles = new Vector.<Plane>;
var mat:ColorMaterial = new ColorMaterial(0xFFFFFF);
sphere = new Sphere(mat, 3);
sphere.x = sphere.y = sphere.z = 1;
scene.addChild(sphere);
lines = new Lines3D;
scene.addChild(lines);
//sphereをエフェクト有効化
var blur:BlurFilter = new BlurFilter();
sphere.filters = [blur, glow];
//カメラ
startRendering();
addEventListener(Event.ENTER_FRAME, onFrame);
}
private function onFrame(event:Event):void
{
var fromX:Number = sphere.x;
var fromY:Number = sphere.y;
var fromZ:Number = sphere.z;
var dx:Number, dy:Number, dz:Number;
dx = -p * toX + p * toY;
dy = -toX * toZ + r * toX - toY;
dz = toX * toY - b * toZ;
toX += D * dx;
toY += D * dy;
toZ += D * dz;
sphere.x = toX * 20;
sphere.y = toY * 20;
sphere.z = toZ * 20;
var color:uint = hsv.toRGB().value;
var l_mat:LineMaterial = new LineMaterial(color);
var fromV:Vertex3D = new Vertex3D(fromX, fromY, fromZ);
var toV:Vertex3D = new Vertex3D(sphere.x, sphere.y, sphere.z);
var line:Line3D = new Line3D(lines, l_mat, 2, fromV, toV);
lines.addLine(line);
glow.color = color;
for (var j:int = 0; j < 3; j++)
{
var mat:ColorMaterial = new ColorMaterial(color);
//
var p:Plane = new Plane(mat, 1, 1);
}
}
}
}