forked from: EnterFrame Event

by bradsedito forked from EnterFrame Event (diff: 34)
♥0 | Line 58 | Modified 2012-09-03 02:32:33 | 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/kkqG
 */

// forked from Ivan_Kuckir's EnterFrame Event
package 
{
    import flash.geom.Vector3D;
    import flash.net.URLRequest;

    import flash.display.Sprite;
    import flash.display.Loader;   
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.geom.Point;    
    import flash.events.Event;
    
    public class Demo extends Sprite 
    {
        public  var balls :Array  =  [];    // balls
        public  var dirs  :Array  =  [];    // directions

        public function Demo() 
        {            
            stage.frameRate = 60;
            
            var bg:Loader = new Loader();
            bg.load(new URLRequest("http://lib.ivank.net/demos/night.jpg"));
            bg.scaleX = stage.stageWidth / 1024;
            bg.scaleY = stage.stageHeight / 512;
            stage.addChild(bg);
           
            //var bd = new BitmapData("ball.png");
            for(var i:uint=0; i<10; i++)
            {
                var b:Loader = new Loader();
                b.load(new URLRequest("http://lib.ivank.net/demos/ball.png"));
               // var b = new Bitmap(bd);
                b.x = Math.random()*900;
                b.y = Math.random()*500;
                b.z = Math.random()*1000;
                balls.push(b);
                dirs .push(new Vector3D( 2+Math.random()*8,2+Math.random()*8,2+Math.random()*8 ));
                //dirs .push(new Point(2+Math.random()*8, 2+Math.random()*8));
                stage.addChild(b);
            }
            stage.addEventListener(Event.ENTER_FRAME, onEF);
        }


        public function onEF( e:Event ):void
        {
            var b:Object
            var d:Object
            var w:Number = stage.stageWidth  -100; 
            var h:Number = stage.stageHeight -100;
            var depth:Number = (w+h)/2;
            
            for(var i:uint=0; i<balls.length; i++) 
            {
                b = balls[i];    d = dirs[i];
                
                b.x  +=  d.x;    
                b.y  +=  d.y;
                b.z  +=  d.z; 
                
                // X-AXIS BOUNDS:
                if(b.x < 0) d.x =  Math.abs(d.x);
                if(b.x > w) d.x = -Math.abs(d.x);
                // Y-AXIS BOUNDS:
                if(b.y < 0) d.y =  Math.abs(d.y);
                if(b.y > h) d.y = -Math.abs(d.y);
                // Z-AXIS BOUNDS:
                if(b.z < 0    ) d.z  =   Math.abs(d.z);
                if(b.z > depth) d.z  =  -Math.abs(d.z);
            }           
        }


    }
}