Alright, for you "just gimme the .fla" types, you're all set. For a walk through of the code, see below.

For reference, a snapshot of the timeline:



In the above code, there's no "playing," in the usual sense. The play head gets sent via "Goto" to different frames only for time delay purposes, and the pictures are repositioned by Action Script's Set Property X Position, etc., creating the effect of motion.

First, I'll introduce the section of script to discuss, then I'll discuss it.

Frame 1's Action Script is some initializing:

Set Variable: "stagewidth" = 540
 Set Variable: "leftmcwidth" = GetProperty ( "/leftmc", _width )
 Set Variable: "centermcwidth" = GetProperty ( "/centermc", _width )
 Set Variable: "rightmcwidth" = GetProperty ( "/rightmc", _width )
 Set Variable: "left" = "slow"
 Go to and Play ("left")

Code
Set Variable: "stagewidth" = 540

Comment
Basically, we're setting a variable 'stagewidth' to the width of the stage. If you change your .fla's stage width, you must make the number here match it.

Code
Set Variable: "leftmcwidth" = GetProperty ( "/leftmc", _width )
 Set Variable: "centermcwidth" = GetProperty ( "/centermc", _width )
 Set Variable: "rightmcwidth" = GetProperty ( "/rightmc", _width )

Comment
We get the width of each movie clip and store it in a variable.

Code
Set Variable: "left" = "slow"
 Go to and Play ("left")

Comment
The movie is also set to play slow starting in the 'left' direction. We'll take a look at what the computer does with the variable "left" set to the value "slow" at the end of the tutorial.

Let's take a look at how the ActionScript handles repositioning the pictures.
Frame 8 contains the following code for when the "Right" button is pushed:
 Set Variable: "leftmcX" = GetProperty ( "/leftmc", _x )
 Set Variable: "centermcX" = GetProperty ( "/centermc", _x )
 Set Variable: "rightmcX" = GetProperty ( "/rightmc", _x )
 If (rightmcX>=(-1*rightmcwidth) and rightmcX<=stagewidth)
 Set Property ("/rightmc", X Position) = rightmcX+10
 Set Property ("/centermc", X Position) = (rightmcX-centermcwidth)+10
 End If
 If (leftmcX>=(-1*leftmcwidth) and leftmcX<=stagewidth)
 Set Property ("/leftmc", X Position) = leftmcX+10
 Set Property ("/rightmc", X Position) = (leftmcX-rightmcwidth)+10
 End If
 If (centermcX>=(-1*centermcwidth) and centermcX<=stagewidth)
 Set Property ("/centermc", X Position) = centermcX+10
 Set Property ("/leftmc", X Position) = (centermcX-leftmcwidth)+10
 End If
 Play


First, the computer determines what the position each movie clip is at on the X-axis. It takes that position and stores it in a variable.
Set Variable: "leftmcX" = GetProperty ( "/leftmc", _x )
 Set Variable: "centermcX" = GetProperty ( "/centermc", _x )
 Set Variable: "rightmcX" = GetProperty ( "/rightmc", _x )

Thus, the X position of the the movie clip "/leftmc" is stored in the variable, "leftmcX."

Next the computer looks at whether any part of the movie clip is on the stage, starting with the right movie clip.
If (rightmcX>=(-1*rightmcwidth) and rightmcX<=stagewidth)
 Set Property ("/rightmc", X Position) = rightmcX+10
 Set Property ("/centermc", X Position) = (rightmcX-centermcwidth)+10
 End If

Let's look at the first section of the conditional:
If (rightmcX>=(-1*rightmcwidth)

This part of the script is asking, is the movie clip as far left as it is wide? If we take the X position and add the width of the movie clip to the X position, will the tail of the movie clip be on the stage? In other words, if the movie clip's X position is -500, that means it's X position is way off the stage. But if the movie clip is 600 pixels long, that means there are 100 pixels of the movie clip still on the stage. If it's still on the stage it has to be repositioned.

You might be asking yourself, "why is a -1 being multiplied times the width of the movie clip?" I'll try my best to explain it, but math isn't my strong suit. We're only concerned with how far from zero the clip is, not how far each clip is from the other. Negative and positive would be helpful if we were trying to determine which number was 'larger' then the other relative to each other, but we're not, we're trying to determine which is closer to zero, and being negative doesn't mean it's farther away then a positive number, it just means it's to the left. Alright, whatever. We need to convert the movie clip to a negative number to make a correct comparision.
If (rightmcX>=(-1*rightmcwidth)

If the X position is closer to zero, return true, if the movie clip width as a negative number is closer to zero, that means it's off the stage and false is returned, and we don't care about it.

The second part of the conditional test:
and rightmcX<=stagewidth)

checks to see if the X position is left of the far right side of the stage. Assuming a stage 540 pixels wide, this could be any number less than 540. If the X position is over 540, skip to the next conditional test. If it is under, then both parts of the conditional test return true and the movie clip must be repositioned for the viewer:
Set Property ("/rightmc", X Position) = rightmcX+10
 Set Property ("/centermc", X Position) = (rightmcX-centermcwidth)+10

Just add 10 pixels to the movie clip's X position in the above script and presto! A scrolling effect.
But what's this here: (rightmcX-centermcwidth)+10

The tricky part here is that we're moving the movie clips according to their X position, but we're aligning the tail end of one movie clip to the X position (beginning) of another.

So how do we do this?