forked from: [study] pv3d - pixels
forked from [study] pv3d - pixels (diff: 72)
ActionScript3 source code
/**
* Copyright bradsedito ( http://wonderfl.net/user/bradsedito )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/qHIG
*/
// forked from gaina's [study] pv3d - pixels
package
{
import flash.display.BlendMode;
import flash.events.Event;
import flash.filters.BlurFilter;
import org.papervision3d.core.effects.BitmapLayerEffect;
import org.papervision3d.core.effects.utils.BitmapDrawCommand;
import org.papervision3d.core.geom.Pixels
import org.papervision3d.core.geom.renderables.Pixel3D;
import org.papervision3d.materials.BitmapColorMaterial;
import org.papervision3d.objects.primitives.Sphere;
import org.papervision3d.view.BasicView;
import org.papervision3d.view.layer.BitmapEffectLayer;
import com.greensock.*;
import com.greensock.easing.*;
import net.hires.debug.Stats;
[SWF(width=465,height=465,backgroundColor=0x000000,frameRate=100)]
public class Main extends BasicView
{
private var NUM:int = 100;
private var rot:Number = 0;
public function Main():void
{
// camera.zoom = 2 ;
draw();
startRendering();
addEventListener(Event.ENTER_FRAME, loop);
var stats:Stats = new Stats();
addChild(stats);
}
private function loop(event:Event):void
{
const SW:Number = new Number( stage.stageWidth );
const SH:Number = new Number( stage.stageHeight );
var rot:Number;
var angle:Number;
var radius:Number;
angle = 360;
radius = 50;
rot = 5;
var MainTL:TimelineMax = new TimelineMax({timeScale:2});
/* MainTL.append
(
TweenMax.to(camera, 1,
{
x:mouseX,
y:mouseY,
z:Math.cos(rot * Math.PI / 180),
//z:(SW/2) + Math.cos(angle)*radius,
ease:Quad.easeInOut
})
);
*/
/*
angle += a;
tx = cx + r*Math.sin(angle*rx*radian)*Math.cos(angle*radian)*sx;
ty = cy + r*Math.sin(angle*ry*radian)*sy;
tz = cz + r*Math.sin(angle*rz*radian)*Math.sin(angle*radian)*sz;
px += (tx - px)*deceleration;
py += (ty - py)*deceleration;
pz += (tz - pz)*deceleration;
*/
// camera.zoom +=((mouseX+mouseY)/10-camera.zoom)/10;
// rot += 0;
// camera.x += Math.sin(rot * Math.PI / 180);
// camera.z += Math.cos(rot * Math.PI / 180);
// camera.y += Math.cos(rot * Math.PI / 180);
}
private function draw():void
{
var _effect:BitmapEffectLayer = new BitmapEffectLayer(viewport, 465, 465);
_effect.addEffect(new BitmapLayerEffect(new BlurFilter(2, 2, 1)));
_effect.drawCommand = new BitmapDrawCommand(null, null, BlendMode.SCREEN);
viewport.containerSprite.addLayer(_effect);
var pxs:Pixels = new Pixels(_effect);
scene.addChild(pxs);
for (var i:int = 0; i < NUM; i++)
{
var tx:Number;
var ty:Number;
var tz:Number;
var xx:Number = Math.random() * 1000 - 500;
var yy:Number = Math.random() * 1000 - 500;
var zz:Number = Math.random() * 1000 - 500;
tx += Math.sin(rot * Math.PI / 180);
ty += Math.cos(rot * Math.PI / 180);
tz += Math.cos(rot * Math.PI / 180);
var px:Pixel3D = new Pixel3D(0xFFFFFFFF, xx, yy, zz);
pxs.addPixel3D(px);
addEventListener(Event.ENTER_FRAME, updatePixels);
function updatePixels():void
{
TweenMax.to(pxs, 1,
{
x:tx,
y:ty,//stage.mouseY + (Math.random() * 20),
z:tz,//Math.cos(rot * Math.PI / 180),
// z:(SW/2) + Math.cos(angle)*radius,
ease:Quad.easeInOut
});
}
}
}
}
}