To get the indeces of the tiles in diagonal 'rows' or 'slices' in a grid you could do something like this:
function getDiagonalGridSlices(numRows:Number, numCols:Number, startingCorner:String):Array{ var a1 = new Array(), a2 = new Array(), c = 0; for(var i=0; i<numCols; i++){ a2[i] = new Array(); for(var j=0; j<numRows; j++){ a2[i][j] = c; c++; } } if(startingCorner == 'topLeft' || startingCorner == 'bottomRight'){ for(var i=0; i<numCols*2 + 1; i++){ a1[i] = new Array(); var ii = i; for(var j=0; j<numRows; j++){ if(a2[ii][j] != undefined){ a1[i].push(a2[ii][j]); } ii--; if(ii < 0){ break; } } } if(startingCorner == 'bottomRight'){ a1.reverse(); } }else if(startingCorner == 'topRight' || startingCorner == 'bottomLeft'){ // todo - adjust accordingly } return a1; } // for testing // In the library: a 50x50 shape, linkage name 'square' import mx.transitions.Tween; import mx.transitions.easing.*; numRows = 3; numCols = 5; tileWidth = tileHeight = 50; diagonalGridSlices = getDiagonalGridSlices(numRows, numCols, 'topLeft'); tiles = createTiles(numRows, numCols, tileWidth, tileHeight); m = 0; buildTiles = setInterval(fadeTiles, 100); function createTiles(numRows:Number, numCols:Number, tileWidth:Number, tileHeight:Number):Array{ var tiles = new Array(); for(var i=0; i<numRows*numCols; i++){ tiles[i] = _root.attachMovie("square", "tile" + i + "_mc", i, {_x:i % numRows * tileWidth,_y:Math.floor(i / numRows) * tileHeight, _alpha:0}); } return tiles; } function fadeTiles():Void{ if (m == diagonalGridSlices.length){ clearInterval(buildTiles); } else { for(var i=0, len=diagonalGridSlices[m].length; i<len; i++){ new Tween(tiles[diagonalGridSlices[m][i]], "_alpha", Regular.easeInOut, 0, 100, 35,false); } m++; } } hth -------------- Andreas Weber motiondraw.com Hehe, all good. Thanks John. I'm sitting here trying to write something mathematically that works. Turns out I am the suck at math, so it's making this complicated. Hand coding the array would be laborsome and wouldn't allow for extensibility. Grrr... fM. _______________________________________________ Flashcoders@chattyfig.figleaf.com To change your subscription options or search the archive: http://chattyfig.figleaf.com/mailman/listinfo/flashcoders Brought to you by Fig Leaf Software Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com