package {
import flash.display.MovieClip;
public class PreviewHolder extends MovieClip
{
var startingWidth = 1024;
var startingHeight = 1024;
public function PreviewHolder()
{
startingWidth = this.width;
startingHeight = this.height;
}
var clips:Array = new Array();
public function AddClip(clip)
{
clips.push(clip);
this.addChild(clip);
ArrangeClips();
}
public function ArrangeClips()
{
var numCols = Math.ceil(Math.sqrt(clips.length));
var maxY = 0;
var maxX = 0;
var clipIndex = 0;
for (var row = 0; row < numCols; row++)
{
var clipX = 0;
var clipY = maxY;
for (var col = 0; col < numCols; col++)
{
if (clipIndex == clips.length) break;
clips[clipIndex].x = clipX;
clips[clipIndex].y = clipY;
clipX += clips[clipIndex].width;
var clipBottom = clips[clipIndex].y + clips[clipIndex].height;
if (clipBottom > maxY) maxY = clipBottom;
var clipRight = clips[clipIndex].x + clips[clipIndex].width;
if (clipRight > maxX) maxX = clipRight;
clipIndex++;
}
}
var scale = Math.min(startingWidth / maxX, startingHeight / maxY);
if (scale > 1) scale = 1;
this.scaleX = this.scaleY = scale;
}
}
}