I was mucking around with the out of society scrolling and i tried to get it to scrool up and down but in my attempts i still cant work it out here the code the stuffed up bit is //commented with //up //down

take a look

Code:


fscommand ( "allowscale", false );

// includes the map array from an external file
#include "map.as"

// how big is our map?
mapW = map1[0].length;
mapH = map1.length;

// the visible area, what we should draw.
visAreaX = 10;
visAreaY = 9;

// the tiles width and height
tileW = 16;
tileH = 16;

// the x and y positions where our map should be positioned on the stage
startX = 140;
startY = 40;

// used later on for the actual scrolling
majorX = 0;
majorY = 0;
scrSpeed = 3;

// attach an empty movieclip from library, inside this we draw our map.
this.attachMovie("empty", "scrClip", 0);
this.scrClip._x = startX;
this.scrClip._y = startY;

// attach a cover, to make it look smooth
this.attachMovie("cover", "cover", 1);
this.cover._x = startX;
this.cover._y = startY;

// buildMap-function
function buildMap () {
	// i = Height loop || j = Width loop
	for ( i=0; i<(visAreaY); ++i ) {
		for ( j=0; j<(visAreaX+1); ++j ) {
			this.scrClip.attachMovie("tile", "t_"+i+"_"+j, ++d);
			this.scrClip["t_"+i+"_"+j]._x = j*tileW;
			this.scrClip["t_"+i+"_"+j]._y = i*tileH;
			this.scrClip["t_"+i+"_"+j].gotoAndStop ( map1[i ][j][0] );
		}
	}
}

buildMap();

// scroll-function
function doScroll (dir) {
	// right
	if ( dir == "right" && j <= mapW ) {
		this.scrClip._x -= scrSpeed;
		majorX += scrSpeed;
		if ( majorX >= tileW ) {
			for ( var lasti=(i-visAreaY); lasti<(i); ++lasti ) {
				for ( var lastj=j; lastj<(j+1); ++lastj ) {
					this.scrClip.attachMovie("tile", "t_"+lasti+"_"+lastj, ++d);
					this.scrClip["t_"+lasti+"_"+lastj]._x = lastj*tileW;
					this.scrClip["t_"+lasti+"_"+lastj]._y = lasti*tileH;
					this.scrClip["t_"+lasti+"_"+lastj].gotoAndStop ( map1[lasti][lastj][0] );
					removeMovieClip ( this.scrClip["t_"+lasti+"_"+(lastj-visAreaX-1)] );
				}
			}
			++j;
			majorX -= tileW;
		}
	}

	// left
	if ( dir == "left" && (j-visAreaX) > 0 ) {
		this.scrClip._x += scrSpeed;
		majorX -= scrSpeed;
		if ( majorX <= 0 ) {
			--j;
			for ( var lasti=(i-visAreaY); lasti<(i); ++lasti ) {
				for ( var lastj=(j-visAreaX-1); lastj<(j-visAreaX); ++lastj ) {
					this.scrClip.attachMovie("tile", "t_"+lasti+"_"+lastj, ++d);
					this.scrClip["t_"+lasti+"_"+lastj]._x = lastj*tileW;
					this.scrClip["t_"+lasti+"_"+lastj]._y = lasti*tileH;
					this.scrClip["t_"+lasti+"_"+lastj].gotoAndStop ( map1[lasti][lastj][0] );
					removeMovieClip ( this.scrClip["t_"+lasti+"_"+(lastj+visAreaX+1)] );
				}
			}
			majorX += tileW;
		}
	}
	// right
	if ( dir == "up" && i <= mapH ) {
		this.scrClip._y -= scrSpeed;
		majorY += scrSpeed;
		if ( majorY >= tileH ) {
			for ( var lastj=(j-visAreaX); lastj<(j); ++lastj ) {
				for ( var lasti=i; lasti<(i+1); ++lasti ) {
					this.scrClip.attachMovie("tile", "t_"+lastj+"_"+lasti, ++d);
					this.scrClip["t_"+lastj+"_"+lasti]._x = lasti*tileH;
					this.scrClip["t_"+lastj+"_"+lasti]._y = lastj*tileW;
					this.scrClip["t_"+lastj+"_"+lasti].gotoAndStop ( map1[lastj][lasti][0] );
					removeMovieClip ( this.scrClip["t_"+lastj+"_"+(lasti-visAreaY-1)] );
				}
			}
			++i;
			majorY -= tileH;
		}
	}

	// down
	if ( dir == "down" && (j-visAreaX) > 0 ) {
		this.scrClip._x += scrSpeed;
		majorX -= scrSpeed;
		if ( majorX <= 0 ) {
			--j;
			for ( var lastj=(j-visAreaY); lastj<(j); ++lastj ) {
				for ( var lasti=(i-visAreaY-1); lasti<(i-visAreaY); ++lasti ) {
					this.scrClip.attachMovie("tile", "t_"+lastj+"_"+lasti, ++d);
					this.scrClip["t_"+lastj+"_"+lasti]._x = lasti*tileH;
					this.scrClip["t_"+lastj+"_"+lasti]._y = lastj*tileW;
					this.scrClip["t_"+lastj+"_"+lasti].gotoAndStop ( map1[lastj][lasti][0] );
					removeMovieClip ( this.scrClip["t_"+lastj+"_"+(lasti+visAreaY+1)] );
				}
			}
			majorY += tileH;
		}
	}

}
[Edited by Ed Mack on 07-22-2002 at 06:15 AM]