forked from: flash on 2012-6-20

by bradsedito forked from Grav (diff: 1)
♥0 | Line 40 | Modified 2012-06-21 07:40:44 | MIT License
play

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/dA3D
 */

// forked from Coft's flash on 2012-6-20
package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.display.MovieClip;
    import flash.geom.Vector3D
    public class Grav extends Sprite {
        private var particles:Vector.<MovieClip>
        private var hole:Vector3D
        public function Grav() {
           particles = new <MovieClip>[]
           for(var i:uint = 0; i < 1000; i++) {
               addOne()
           }
           hole = new Vector3D()
           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
                sp.pos = sp.pos.add(sp.vec)
                sp.x = 400*sp.pos.x/sp.pos.z
                sp.y = 400*sp.pos.y/sp.pos.z
                sp.scaleX = 1/sp.pos.z
                sp.scaleY = 1/sp.pos.z
                sp.visible = sp.pos.z > 0.001
            }

        }
        private function addOne():void {
            var sp:MovieClip = new MovieClip()
            sp.graphics.beginFill(0)
            sp.graphics.drawCircle(0,0,5)
            sp.graphics.endFill()
            sp.pos = new Vector3D(Math.random(), Math.random(), Math.random())
            sp.vec = new Vector3D(Math.random()/100-1/200, Math.random()/100-1/200, Math.random()/100-1/200)
            addChild(sp)
            particles.push(sp)
        }
    }
}