//Seamless Background Class //Ben Pritchard 2006 //Pixelfumes.com import flash.display.BitmapData; class SeamlessBackground{ var stageWidth:Number; var stageHeight:Number; var scope:MovieClip; var linkageID:String; var clipWidth:Number; var clipHeight:Number; var stageListener:Object; var centeredClip:MovieClip = null; var tileCount:Number; var useBitmap:Boolean; function SeamlessBackground(s:MovieClip,linkage:String,useBMP:Boolean){ linkageID = linkage; useBitmap = useBMP; stageListener = new Object(); stageListener.cRef = this; stageListener.onResize = function(){ this.cRef.updateTiles(); } Stage.addListener(stageListener); scope = s; scope.createEmptyMovieClip("tile_1",1); if(useBitmap != true){ scope["tile_1"].attachMovie(linkageID,"tile",1); clipWidth = scope["tile_1"]._width; clipHeight = scope["tile_1"]._height; }else{ var bmpd:BitmapData = BitmapData.loadBitmap(linkageID); with(scope["tile_1"]){ beginBitmapFill(bmpd, matrix, repeat, smoothing); repeat = true; moveTo(0, 0); lineTo(0, Stage.height); lineTo(Stage.width, Stage.height); lineTo(Stage.width, 0); lineTo(0, 0); endFill(); } } } public function setCenteredClip(mc:MovieClip):Void{ centeredClip = mc; updateTiles(); } private function updateTiles():Void{ if(useBitmap != true){ destroyTiles(); var fitsX:Number = Math.ceil(Stage.width/clipWidth); var fitsY:Number = Math.ceil(Stage.height/clipHeight); var colCount:Number = 1; for(var x:Number=1; x fitsX){ colCount = 0; nClip._x = 0; nClip._y = lClip._y + lClip._height; }else{ nClip._x = lClip._x + lClip._width; nClip._y = lClip._y; } colCount++; } tileCount = fitsX*fitsY; }else{ var bmpd:BitmapData = BitmapData.loadBitmap(linkageID); with(scope["tile_1"]){ clear(); beginBitmapFill(bmpd, matrix, repeat, smoothing); moveTo(0, 0); lineTo(0, Stage.height); lineTo(Stage.width, Stage.height); lineTo(Stage.width, 0); lineTo(0, 0); endFill(); } } if(centeredClip != null){ centeredClip._x = (Stage.width/2)-centeredClip._width/2; centeredClip._y = (Stage.height/2)-centeredClip._height/2; } } public function destroyTiles():Void{ for(var x:Number=1;x