The code on the previous page was just a setup to the real code 
				that is, coincidentally, on this page. Let's take a look at the 
				thumbnails_fn function that I briefly mentioned towards the end 
				of the last page: 
				
					
				Before going through the code line-by-line, let me explain 
				what this function does. The thumbNailScroller function, as its 
				name implies, helps scroll the thumbnails when the mouse moves 
				over the left or right boundaries. Most of the above code lies 
				in determining when to start and stop the scrolling:
				
				
					- this.createEmptyMovieClip("tscroller",
					1000);
 
				
				I'm creating a new, empty movie clip called tscroller 
				at a depth of 1000.
				
					- scroll_speed
					= 10;
 
				
				The variable scroll_speed controls  how fast all of the 
				thumbnails scroll left or right.
				
					- tscroller.onEnterFrame
					= 
					function()
					{ 
 
				
				I'm specifying the onEnterFrame of the newly created 
				tscroller movie clip. If you recall, onEnterFrame executes 
				any code contained within it repeatedly unless you explicitly 
				delete the onEnterFrame.
				
					- if ((_root._ymouse>=thumbnail_mc._y)
					&& (_root._ymouse<=thumbnail_mc._y+thumbnail_mc._height))
					{ 
 
				
				The above if condition checks to make sure that the thumbnail 
				scroller works only when our mouse is contained within the 
				vertical (y) constraints of the thumbnail_mc movie clip.
				The following diagram shows the constraint imposed by 
				_root._ymouse >= thumbnail_mc._y. Anything beyond the top border 
				of the thumbnail is fair game:
				
				
				But, I also include an extra constraint to make sure that the 
				thumbnails don't scroll when your mouse is below the thumbnail 
				such as the Previous and Next buttons. That is fixed by the
				_root._ymouse<=thumbnail_mc._y+thumbnail_mc._height 
				code. 
				Thumbnail_mc._y 
				gives the numerical value of the top border of your thumbnails, 
				and thumbnail_mc._height gives you the total height of your 
				thumbnails. The total y position then, is the sum of both the y 
				position of the top thumbnail border and the total thumbnail 
				height.
				
				
				Each of the above two constraints by themselves are not very 
				practical. But, both of them combined with the && operator 
				produces just the right vertical boundary I need, as seen by the 
				combination of the blue and yellow rectangles as the green 
				rectangle shown below:
				
				
				The next course of action would be to limit the 
				horizontal range of movement. You wouldn't want to have the 
				thumbnails scroll when your mouse cursor is well to the left or 
				right of the actual photo gallery area!
				The right boundary of our horizontal scrolling 
				is determined by: 
				
					- (_root._xmouse>=(hit_right._x-40))
					&& (thumbnail_mc.hitTest(hit_right))
 
				
				I check for two things. First, I check to see if 
				the mouse cursor is 40 pixels to the left of the right-most 
				boundary of our hit_right movie clip. 
				Second, I make sure that the thumbnail_mc movie 
				clip is hitting hit_right. Even though, due to the mask, it 
				looks as if all of the thumbnails are neatly contained within 
				the viewing area, in reality, the thumbnails extend well towards 
				the right-end of the screen provided there are enough images. 
				The hitTest makes sure that the thumbnail_mc 
				still is hitting the hit_right movie clip. In other words, it 
				makes sure there are still images left for us to scroll. I 
				wouldn't want you to keep scrolling indefinitely after all of 
				the thumbnails have left the viewing area!
				The complement of this is the boundary for the 
				left side of our thumbnail scroller:
				
					- (_root._xmouse<=(hit_left._x+40))
					&& (thumbnail_mc.hitTest(hit_left))
 
				
				I do the same thing as I did for the right boundary, except I 
				change a few signs and movie clip references. Like before, I 
				check to make sure that the mouse is within a reasonable area on 
				the left side before the scrolling is invoked, and I also make 
				sure that there are images left to scroll by using the hitTest 
				function.
				
					- thumbnail_mc._x
					-= 
					scroll_speed;
 
				
				If both the vertical and horizontal right boundary conditions 
				are met, that means we are interested in scrolling our images to 
				the left. Therefore, I have the code set to move thumbnail_mc in 
				the horizontal direction at a speed determined by the 
				scroll_speed variable.
				
					- thumbnail_mc._x
					+= 
					scroll_speed;
 
				
				Likewise, if both the vertical and horizontal left boundary 
				conditions are met, I scroll the thumbnail_mc movie clip to the 
				right at the speed determined by scroll_speed.
				
					- if
					((_root._ymouse>=thumbnail_mc._y)
					&&
					(_root._ymouse<=thumbnail_mc._y+thumbnail_mc._height))
					{
					
 
					
						- if
						((_root._xmouse>=(hit_right._x-40))
						&&
						(thumbnail_mc.hitTest(hit_right)))
						{
						
 
						
							- 
							thumbnail_mc._x
							-=
							
							scroll_speed;
 
						
						- } 
						else if
						((_root._xmouse<=(hit_left._x+40))
						&&
						(thumbnail_mc.hitTest(hit_left)))
						{
						
 
						
							- 
							thumbnail_mc._x
							+=
							
							scroll_speed;
 
						
						- }
 
					
					- }
					else
					{
					
 
					
						- delete
						
						tscroller.onEnterFrame;
 
					
					- }
 
				
				The structure of this if statement is something that I have 
				not used in any of my tutorials before. It is an if - else if 
				form. Normally, there would be an if statement and an else 
				statement, but I wanted to have one extra condition for 
				executing code.
				This is a nicer way of combining to if statements together, 
				and you would suffer no loss in functionality if you decided to 
				use two if statements instead.
				
					- delete
					tscroller.onEnterFrame;
 
				
				I check to see if the mouse cursor is within the vertical 
				area of the thumbnail, and if the mouse cursor is not there, 
				that means that the user has scrolled and moved his/her mouse 
				cursor away from the scrolling area.
				Since having onEnterFrame loop continuously can be taxing on 
				the CPU, it is good to delete them. Since our 
				thumbNailScroller() function is called each time you hover over 
				a thumbnail, a new empty 'tscroller' movie clip is created with 
				a new onEnterFrame also being initiated. In other words, the 
				deletion is only in effect until you call the 
				thumbNailScroller() function again.
				On the next page, I will do a lightning round summary of the 
				six pages you've clobbered through already!
				
                
                  
                    
					
					
					
					  | 
                    
                     
                    
                    page 6 of 7  | 
                    
                      |