Substance: [unknown ]
♥0 |
Line 59 |
Modified 2012-07-15 06:23:49 |
MIT License
archived:2017-03-30 09:11:48
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/9cTg
*/
package
{
import flash.filters.BlurFilter;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.ui.*;
import net.hires.debug.Stats;
public class SubstanceUnknown extends Sprite
{
private var particles:Vector.<MovieClip>
private var hole:Vector3D
private var stats:Stats = new Stats();
public var isMouseDown:Boolean;
public function SubstanceUnknown()
{
stage.frameRate = 90;
stage.addChild( stats );
//ENTRY POINT:
particles = new <MovieClip>[]
for(var i:uint = 0; i<18; i++) // i<9;
{
addOne()
}
hole = new Vector3D(0,0,2) //hole = new Vector3D(0,0,1)
addEventListener("enterFrame", frame)
}
private function frame(e:Event):void
{
for(var i:int = particles.length - 1; i >= 0; i--)
{
var sp:MovieClip = particles[i]
var d:Vector3D = hole.subtract(sp.pos)
var k:Number = ( (d.x*d.x)+(d.y*d.y)+(d.z*d.z) ) ////var k:Number = Math.sqrt( (d.x*d.x)+(d.y*d.y)+(d.z*d.z) ) // var k:Number = d.x*d.x + d.y*d.y + d.z*d.z
k = (k < 0.618) ? 100 : (1000*k) //k = (k < 0.1) ? 10 : 100*k // k = (k < 0.1) ? 300 : 3000*k
sp.pos = sp.pos.add(sp.vec)
sp.x = 100*sp.pos.x/sp.pos.z+200
sp.y = 100*sp.pos.y/sp.pos.z+200
sp.z = sp.pos.z // 100*sp.pos.z/sp.pos.z+200
//sp.scaleX = 1/sp.pos.z
//sp.scaleY = 1/sp.pos.z
//sp.visible = sp.pos.z > 0.001
sp.vec.x += (d.x/k)*0.618//0.4 // ( d.x/k )/114;
sp.vec.y += (d.y/k)*0.618//0.4 // ( d.y/k )/114;
sp.vec.z += (d.z/k)*0.618//0.4 // ( d.z/k )/114;
//sp.vec.z == Math.cos( Math.PI/360 )
}
}
private function addOne():void
{
var sp:MovieClip = new MovieClip()
var blurr:BlurFilter = new BlurFilter( 20,20,3 )
//var sp_LOC3D:uint = new uint( sp.globalToLocal3D( new Point(sp.x,sp.y) ) )
sp.graphics.beginFill( 0xFFFFFF*Math.random(),1 )
sp.blendMode = 'add'
sp.graphics.drawCircle( 0,0,30 )
sp.graphics.endFill()
sp.pos = new Vector3D(Math.random()-0.5, Math.random()-0.5, 0.5+Math.random())
sp.vec = new Vector3D(Math.random()/30-1/60, Math.random()/30-1/60, Math.random()/30-1/60)
sp.filters = [ blurr ]
addChild(sp)
particles.push(sp)
}
}
}