forked from: EnterFrame Event
forked from EnterFrame Event (diff: 34)
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);
}
}
}
}