Dibujar por AS es una de las mejores cosas que tiene flash, cuando quieres crear contenido dinámico al que le envías valores y te dibuje depende de lo que le envías, así no tienes que cargar tu flash de bitmaps o Movies y después es muy fácil variar el contenido, ya que solo debes cambiar variables.
Bueno como bien dices lo que quieres se resuelve con ciclos y dibujando, pero además es mejor utilizar BitmapData para alijerar la memoria del flash player, esto puede ser una solución:
Pensé hacerte un ejemplillo rápido para que entendieras y pensé que lo podría hacer en un minuto y resulta que me ha llevado más tiempo de la cuenta hacerlo, pero bueno ya me queda aquí para cuando desee utilizarloEl ejemplo está compuesto de una función y un prototype, la primera para hacer el background completo y la segunda dibuja un cuadrito con las medidas y el color que le especifiquemos.
Código ActionScript :
import flash.display.BitmapData;
import flash.geom.Matrix;
//---Función de dibujar el background
function drawBackground(cara:Number, steps:Number, color:Number):Void {
//---Crear el contenedor
var back:MovieClip = this.createEmptyMovieClip("back", this.getNextHighestDepth());
//---Dibujar la primera sección
var seccion:MovieClip = back.createEmptyMovieClip("seccion", back.getNextHighestDepth());
seccion.cacheAsBitmap = true;
var cant:Number = steps + 1;
//---Posicion en las X inicial
var posX:Number = 0;
var cuadro:MovieClip;
for (var i:Number = 0; i < cant; i++) {
cuadro = seccion.createEmptyMovieClip("cuadro" + i, seccion.getNextHighestDepth());
cuadro.cacheAsBitmap = true;
cuadro.drawCuadro(cara, color);
cuadro._x = posX;
cuadro._y = i * cara;
posX -= cara;
if(posX < 0){
posX = (cant - 1) * cara;
}
}
//---Cantidad de secciones en alto y ancho
var totalW:Number = Math.ceil(Stage.width / seccion._width);
var totalH:Number = Math.ceil(Stage.height / seccion._height);
//---Crear las copias de la sección
var myBitmap:BitmapData = new BitmapData(Stage.width, Stage.height, true, 0x000000);;
var myMatrix:Matrix;
for (var i:Number = 1; i <= totalH; i++) {
for (var j:Number = 1; j <= totalW; j++) {
myMatrix = new Matrix(1, 0, 0, 1, (j - 1) * seccion._width, (i - 1) * seccion._height);
myBitmap.draw(seccion, myMatrix);
}
}
back.attachBitmap(myBitmap, back.getNextHighestDepth());
}
//---Prototype de dibujar un cuadro
MovieClip.prototype.drawCuadro = function(cara:Number, color:Number):Void {
with (this) {
beginFill(color,100);
moveTo(0,0);
lineTo(cara,0);
lineTo(cara,cara);
lineTo(0,cara);
lineTo(0,0);
endFill();
}
};
Después se llama a la función de esta manera:
Código ActionScript :
drawBackground(cara:Number, espacio:Number, color:Number);
Donde cara va a ser el tamaño de las caras de los cuadros que compondrán el background.
Espacios es un número que controla el espacio que tendrá un cuadro de otro tomando como medidas el cuadro en si.
Y color es el color que tendrá cada cuadro.
El ejemplo que pones en la imagen me parece que es de cuadros de 1 píxel con una separación de tres y color negro, pues se debería llamar de la siguiente forma:
Código ActionScript :
drawBackground(1, 3, 0x000000);
Lo que debes hacer es que cuando cambies la pantalla de resolución borras el clip del background y vuelves a llamar a la función y se volverá a dibujar con las nuevas medidas de la pantalla.