Public feed #892540

Mine

public text v1 · immutable
Raw Edit
·published 2008-02-05 14:59 UTC
rendered paste body
import flash.utils.Timer
import flash.events.TimerEvent

// Create an instance of a library bitmap 
// given the Class name of MyImage
var imageData:Ball = new Ball(0, 0);

var balls:Array=[];
var i:int=0;
const NUM_BALLS=5000;

var buffers:Array=[];

var buf=0;

var loopCount:uint=0;

buffers[0]=new Sprite();
buffers[1]=new Sprite();

var bf0:DisplayObject;
var bf1:DisplayObject;

function initBalls()
{
	for(i=0; i < NUM_BALLS; i++)
	{
		balls[i]=new Bitmap(imageData);
		balls[i].x=Math.random()*stage.stageWidth;
		balls[i].y=Math.random()*stage.stageHeight;	
	}
	//addEventListener("enterFrame", myLoop);
}


var dx:Number;

function moveBalls()
{
	for(i=0; i < NUM_BALLS; i++)
	{
		dx=Math.round(Math.random())==0?-1:1;
		balls[i].x+=dx;
		balls[i].y+=dx;
	}
}

function renderBalls(s:Sprite)
{
	
	for(i=0; i < NUM_BALLS; i++)
	{
		s.addChildAt(balls[i],i);
	}
}

function drawBuffer()
{
	buf_txt.text=buf;
	
	// remove these following lines so buffer = always 0 increases running time from 7.5 secs to 22 secs
	var btemp:DisplayObject=(buf==0)?bf0:bf1;
	var btemp2:DisplayObject=(buf==1)?bf0:bf1;
	btemp.visible=true;
	btemp2.visible=false;
	buf=(buf==0)?1:0;

}

function myLoop(e:Event)
{
	moveBalls();
	renderBalls(buffers[buf]);
	drawBuffer();
	loopCount++;
}



bf0=addChild(buffers[0]);
bf1=addChild(buffers[1]);
bf1.visible=false;

initBalls();

var startTime;
var endTime;

function myEnd(e:Event)
{
	endTime=getTimer();
	var tTime=endTime-startTime;
	trace("end: " + tTime + " ("+loopCount+")");
}



var timer = new Timer(1000/60, 60)
timer.addEventListener(TimerEvent.TIMER, myLoop)
timer.addEventListener(TimerEvent.TIMER_COMPLETE,myEnd);

startTime=getTimer();
timer.start()

//addEventListener("enterFrame", myLoop);