Parallax AS3 Need help!

Hi!

I’m busy building a website in Flash AS3. I tried to create the same effect as www.coraline.com (click on enter site)

But my file is scrolling too far. So far that there’s white. You also can drag it with your mouse to get the white background. And that’s not what I want.

Maybe I have to set a limit for scrolling or a stop() somewhere in a frame…
I only don’t know where and how, and how to search google for tutorials…

So can anyone help me?

This is a link to my file: http://www.i-teken.nl/Hilberttest/Flash/Home.html

And this is my AS3 Code:


constrainedMoon(moon_mc, 5, 1);
constrainedFactory(factory_mc, 5, 1);
constrainedHead(head_mc, 5, 1);
constrainedIsland(island_mc, 5, 1);
constrainedSea(sea_mc, 5, 1);
constrainedMoonlight(moonlight_mc, 5, 1);
constrainedShip(ship_mc, 5, 1);


function constrainedMoon(target:MovieClip, speed:Number, dir:int){
	var mousePercent:Number = mouseX / stage.stageWidth;
	
	stage.addEventListener(MouseEvent.MOUSE_MOVE, panImage);
	
	function panImage(E:MouseEvent):void {
		var mSpeed:Number;
		mousePercent = mouseX / stage.stageWidth;
		if (dir == 1) {
			mSpeed = mousePercent;
		} else {
			mSpeed = 1 - mousePercent;
		}
		target.destX = Math.round(-((target.width - stage.stageWidth) * mSpeed));
		if(target.hasEventListener(Event.ENTER_FRAME)){
			target.removeEventListener(Event.ENTER_FRAME, del);
		}
		target.addEventListener(Event.ENTER_FRAME, del);
		E.updateAfterEvent();
	}
	
	function del(E:Event):void {
		if (Math.abs(target.x - target.destX) <= 1) {
			target.x = Math.round(target.destX);
			target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
		} else {
			target.x += (target.destX - target.x) * (speed / 100);
		}
	}
}
//-----------------------------------------------------------------------

function constrainedFactory(target:MovieClip, speed:Number, dir:int){
	var mousePercent:Number = mouseX / stage.stageWidth;
	
	stage.addEventListener(MouseEvent.MOUSE_MOVE, panImage);
	
	function panImage(E:MouseEvent):void {
		var mSpeed:Number;
		mousePercent = mouseX / stage.stageWidth;
		if (dir == 1) {
			mSpeed = mousePercent;
		} else {
			mSpeed = 1 - mousePercent;
		}
		target.destX = Math.round(-((target.width - stage.stageWidth) * mSpeed));
		if(target.hasEventListener(Event.ENTER_FRAME)){
			target.removeEventListener(Event.ENTER_FRAME, del);
		}
		target.addEventListener(Event.ENTER_FRAME, del);
		E.updateAfterEvent();
	}
	
	function del(E:Event):void {
		if (Math.abs(target.x - target.destX) <= 1) {
			target.x = Math.round(target.destX);
			target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
		} else {
			target.x += (target.destX - target.x) * (speed / 100);
		}
	}
}

//-----------------------------------------------------------------------

function constrainedHead(target:MovieClip, speed:Number, dir:int){
	var mousePercent:Number = mouseX / stage.stageWidth;
	
	stage.addEventListener(MouseEvent.MOUSE_MOVE, panImage);
	
	function panImage(E:MouseEvent):void {
		var mSpeed:Number;
		mousePercent = mouseX / stage.stageWidth;
		if (dir == 1) {
			mSpeed = mousePercent;
		} else {
			mSpeed = 1 - mousePercent;
		}
		target.destX = Math.round(-((target.width - stage.stageWidth) * mSpeed));
		if(target.hasEventListener(Event.ENTER_FRAME)){
			target.removeEventListener(Event.ENTER_FRAME, del);
		}
		target.addEventListener(Event.ENTER_FRAME, del);
		E.updateAfterEvent();
	}
	
	function del(E:Event):void {
		if (Math.abs(target.x - target.destX) <= 1) {
			target.x = Math.round(target.destX);
			target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
		} else {
			target.x += (target.destX - target.x) * (speed / 100);
		}
	}
}

//-----------------------------------------------------------------------

function constrainedIsland(target:MovieClip, speed:Number, dir:int){
	var mousePercent:Number = mouseX / stage.stageWidth;
	
	stage.addEventListener(MouseEvent.MOUSE_MOVE, panImage);
	
	function panImage(E:MouseEvent):void {
		var mSpeed:Number;
		mousePercent = mouseX / stage.stageWidth;
		if (dir == 1) {
			mSpeed = mousePercent;
		} else {
			mSpeed = 1 - mousePercent;
		}
		target.destX = Math.round(-((target.width - stage.stageWidth) * mSpeed));
		if(target.hasEventListener(Event.ENTER_FRAME)){
			target.removeEventListener(Event.ENTER_FRAME, del);
		}
		target.addEventListener(Event.ENTER_FRAME, del);
		E.updateAfterEvent();
	}
	
	function del(E:Event):void {
		if (Math.abs(target.x - target.destX) <= 1) {
			target.x = Math.round(target.destX);
			target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
		} else {
			target.x += (target.destX - target.x) * (speed / 100);
		}
	}
}
//-----------------------------------------------------------------------

function constrainedSea(target:MovieClip, speed:Number, dir:int){
	var mousePercent:Number = mouseX / stage.stageWidth;
	
	stage.addEventListener(MouseEvent.MOUSE_MOVE, panImage);
	
	function panImage(E:MouseEvent):void {
		var mSpeed:Number;
		mousePercent = mouseX / stage.stageWidth;
		if (dir == 1) {
			mSpeed = mousePercent;
		} else {
			mSpeed = 1 - mousePercent;
		}
		target.destX = Math.round(-((target.width - stage.stageWidth) * mSpeed));
		if(target.hasEventListener(Event.ENTER_FRAME)){
			target.removeEventListener(Event.ENTER_FRAME, del);
		}
		target.addEventListener(Event.ENTER_FRAME, del);
		E.updateAfterEvent();
	}
	
	function del(E:Event):void {
		if (Math.abs(target.x - target.destX) <= 1) {
			target.x = Math.round(target.destX);
			target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
		} else {
			target.x += (target.destX - target.x) * (speed / 100);
		}
	}
}
//-----------------------------------------------------------------------

function constrainedMoonlight(target:MovieClip, speed:Number, dir:int){
	var mousePercent:Number = mouseX / stage.stageWidth;
	
	stage.addEventListener(MouseEvent.MOUSE_MOVE, panImage);
	
	function panImage(E:MouseEvent):void {
		var mSpeed:Number;
		mousePercent = mouseX / stage.stageWidth;
		if (dir == 1) {
			mSpeed = mousePercent;
		} else {
			mSpeed = 1 - mousePercent;
		}
		target.destX = Math.round(-((target.width - stage.stageWidth) * mSpeed));
		if(target.hasEventListener(Event.ENTER_FRAME)){
			target.removeEventListener(Event.ENTER_FRAME, del);
		}
		target.addEventListener(Event.ENTER_FRAME, del);
		E.updateAfterEvent();
	}
	
	function del(E:Event):void {
		if (Math.abs(target.x - target.destX) <= 1) {
			target.x = Math.round(target.destX);
			target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
		} else {
			target.x += (target.destX - target.x) * (speed / 100);
		}
	}
}
//-----------------------------------------------------------------------

function constrainedShip(target:MovieClip, speed:Number, dir:int){
	var mousePercent:Number = mouseX / stage.stageWidth;
	
	stage.addEventListener(MouseEvent.MOUSE_MOVE, panImage);
	
	function panImage(E:MouseEvent):void {
		var mSpeed:Number;
		mousePercent = mouseX / stage.stageWidth;
		if (dir == 1) {
			mSpeed = mousePercent;
		} else {
			mSpeed = 1 - mousePercent;
		}
		target.destX = Math.round(-((target.width - stage.stageWidth) * mSpeed));
		if(target.hasEventListener(Event.ENTER_FRAME)){
			target.removeEventListener(Event.ENTER_FRAME, del);
		}
		target.addEventListener(Event.ENTER_FRAME, del);
		E.updateAfterEvent();
	}
	
	function del(E:Event):void {
		if (Math.abs(target.x - target.destX) <= 1) {
			target.x = Math.round(target.destX);
			target.removeEventListener(Event.ENTER_FRAME, arguments.callee);
		} else {
			target.x += (target.destX - target.x) * (speed / 100);
		}
	}
}
//-----------------------------------------------------------------------