In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Messing with auto-spacing grid

Get Adobe Flash player
by zorzo_mezz 10 Dec 2009
    Embed
/**
 * Copyright zorzo_mezz ( http://wonderfl.net/user/zorzo_mezz )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/3fPW
 */

package {
    import flash.display.Sprite;
    import flash.geom.Point;
    public class FlashTest extends Sprite {
        
        private var grid:Array;
	
        private var gridWidth:Number = 450;
        private var gridHeight:Number = 450;

	private var columnWidth:int; // for clip resizing
	private var columnHeight:int; // for clip resizing
        
        public function FlashTest() {
            // write as3 code here..
            generateGrid(new Point(10,10), gridWidth, gridHeight);
            
            // debug rendering
            this.graphics.lineStyle(1,0x000000);
            this.graphics.drawRect(0, 0, gridWidth, gridHeight);
            
            for(var i:int = 0; i < grid.length; i++) {
                this.graphics.lineStyle(1,0x000000);
                this.graphics.drawCircle(grid[i].x, grid[i].y , 1);
                this.graphics.lineStyle(1,0xFF0000);
                this.graphics.drawRect(grid[i].x-(columnWidth/2), grid[i].y-columnHeight, columnWidth, columnHeight); 
            }
        }
        
        private function generateGrid(gridsize:Point, gridWidth:int, gridHeight:int):void {
	    grid = new Array(gridsize.x * gridsize.y);		
	    columnWidth = gridWidth / gridsize.x;
	    columnHeight = gridHeight / gridsize.y;		
	    var halfColumnWidth:int = columnWidth / 2;
			
	    for(var r:int = 0; r < gridsize.y; r++) {
	    	for(var c:int = 0; c < gridsize.x; c++) {		
		    // nb. for a bottom middle reg point
		    grid[r*gridsize.x+c] = new Point((c*columnWidth)+halfColumnWidth, (r*columnHeight)+columnHeight); 	    
		}
	    }
        }
        
        private function generateGridWithJitter(gridsize:Point, gridWidth:int, gridHeight:int):void {
	    grid = new Array(gridsize.x * gridsize.y);		
	    columnWidth = gridWidth / gridsize.x;
	    columnHeight = gridHeight / gridsize.y;		
	    var halfColumnWidth:int = columnWidth / 2;
	    
            var px:Number;//temp
            var py:Number;//temp	
	    for(var r:int = 0; r < gridsize.y; r++) {
	    	for(var c:int = 0; c < gridsize.x; c++) {		
		    // nb. for a bottom middle reg point
                    px = (c*columnWidth)+halfColumnWidth;
                    py = (r*columnHeight)+columnHeight;
                    px += randRange(-5, 5);
                    py += randRange(-10, 10);
		    grid[r*gridsize.x+c] = new Point(px, py); 	    
		}
	    }

            columnWidth *= 0.9;
            columnHeight *= 0.9;
        }
        
        private function randRange(low:Number, high:Number):Number {
            return Math.floor(Math.random() * (1+high-low)) + low;    
        }
    }
}