| code 
					by Krilnon, tutorial written by kirupa  |  2 July 
					2006
 In the previous 
					page, I started to explain the code behind the image 
					pan. In this page, I will wrap up the code explanation. 
					Let's pick up from where we left off: 
						target.destX
						= Math.round(-((target._width-Stage.width)*mSpeed)); The destX variable stores the X position of our image. 
					This line of code is designed to ensure that no matter where 
					the mouse is, as determined by the mousePercent 
					variable stored in mSpeed, that your image will not 
					go beyond either the left-most or right-most boundaries. One way you can think about this is that, mSpeed 
					is either (1 - mousePercent) or
					mousePercent. Either way, 
					mousePercent is _xmouse/Stage.width. When you 
					expand this 
					out, for example when dir = 1, 
					your destX variable can be simplified as: -(_xmouse * 
					(target._width - Stage.width) / Stage.width) As your mouse position moves, your value for destX 
					changes. What this does, as you will see shortly, is that it sets 
					the final destination for where your image needs to scroll. 
					When you are panning, you would have noticed the image 
					movement is not immediately responsive to your mouse movement. 
					There is a gradual acceleration and deceleration as the 
					image moves to its destination. The destination is what the 
					above destX value finds for you. 
						
						The variable target is the instance 
						name of the Movie Clip you pass in to the 
						constrainedMove function. The variable destX is stored 
						in the target movie clip, because otherwise, if it were 
						stored without a parent, it would only have one value 
						throughout the life of the animation.
 While that is OK for only one moving image, but what if 
						you have multiple images that you wish to pan. Each one 
						of those images would need their own destX value, or 
						else you won't be able to individually control either 
						the direction or the speed of each image. That greatly 
						reduces the flexibility we can have with the code.
 
 
						if
						(target._x
						== 
						target.destX)
						{ 
							delete
							target.onEnterFrame;
							 } 
						else { 
							target._x
							+= 
							Math.ceil((target.destX-target._x)*(speed/100)); } The above lines of code are fairly straightforward after 
					learning about what the destX variable does. If your image 
					position, target._x, is less than or greater than your destX 
					variable, then you need to move in the appropriate direction 
					to make sure that the difference between where you are and 
					where you should be as specified by the destX variable is 
					reduced to zero.  In other words, your goal is to have both your current 
					position and the position stored by destX to be the same so 
					that you end the enterFrame by reaching 
					target._x == target.destX. 
 Well, I hope this tutorial helps you to create a really 
					cool image panning effect. I have provided the source files 
					I used to create the animation you see on the home page. 
					Click on the download graphic below to get it. 
					 If you have any questions, feel free to post them on the 
					forums. Cheers!   |