En primer lugar, por lo que veo a lo que tú llamas filas son realmente las columnas, y viceversa.
Eso que comentas del stage se produce cuando intentas acceder al stage antes de haber añadido el objeto a la visualización.
Para tratar de forma diferente a filas y a columnas, tienes que usar un array bidimensional (bueno, en realidad podrías hacerlo con uno unidimensional, pero es menos intuitivo). Aquí te dejo un ejemplo:
Código ActionScript :
var filas:int = 10;
var columnas:int = 55;
var cuadros:Array;
function creaTablero():void
{
cuadros = new Array(filas);
for (var py:int = 0; py < filas; py++)
{
cuadros[py] = new Array(columnas);
for (var px:int = 0; px < columnas; px++)
{
var cuadro:Sprite = new Sprite();
cuadro.graphics.beginFill(Math.random()* 0xffffff);// Para diferencias un sprite de otro les doy un color aleatorio
cuadro.graphics.drawRect(0, 0, 10, 10);
cuadro.graphics.endFill();
cuadro.x = cuadro.width * px;
cuadro.y = cuadro.height * py;
this.addChild(cuadro);
cuadros[py][px] = cuadro;
}
}
}
creaTablero();
var myTimer:Timer = new Timer(1, 360);
myTimer.addEventListener(TimerEvent.TIMER, girarFila);
//Cambia la anterior línea por esta
//myTimer.addEventListener(TimerEvent.TIMER, girarColumna);
myTimer.start();
function girarFila(event:TimerEvent):void
{
var numeroFila:int = 8;
for (var i:int = 0; i < cuadros[numeroFila].length; i++)
{
cuadros[numeroFila][i].rotation += 1;
}
}
function girarColumna(event:TimerEvent):void
{
var numeroColumna:int = 8;
for (var i:int = 0; i < cuadros.length; i++)
{
cuadros[i][numeroColumna].rotation += 1;
}
}