mayday! Вот оно. Не бог весть, что но работает.
Возможно, есть более красивые и простые варианты реализации этого, но я всего лишь beginner. А посему пусть этот код правят продвинутые флешеры, коих здесь на форуме неисчислимое множество.
На счет кода - L я убрал чтоб мозг себе им не компостировать, когда разберетесь как работает код, вставьте L в нужные места и все будет отлично.
Правда я подозреваю, что вся эта задача решается куда проще(пока незнаю как).

Код:
posX=_root.mc._x;
posY=_root.mc._height/2;
posMask=0;
center = Stage.width/2;
var L:Number = 5;
//длина зазора между кнопками
var N:Number = 5;
//количество кнопок
var G:Number = 1;
//скорость для кнопок
var Q:Number = G;
//
var indexArr:Array = [];
for (var i:Number = 1; i<=N; i++)
{
this.attachMovie("photo"+i, "photo"+i, i);
this["photo"+i]._x = ((mcOld._x + mcOld._width) || mcOld._x);
this["photo"+i]._y = posY;
mcOld = this["photo"+i];
indexArr.push(i);
}
var mcLast1 = this["photo"+N]._x-60;//Здесь можно другую область скролирования поставить
var mcLast2 = -this["photo1"]._width;
var index:Number = null;
var tmpVar:Object = {};
this.onEnterFrame = function():Void
{
shag = (center-_xmouse)/10;
for (var i:Number = 1; i<=N;i++)
{
if ((this["photo"+i]._x)>mcLast1)
{
tmpVar =indexArr.pop();
this["photo"+tmpVar]._x=this["photo"+indexArr[0]]._x-this["photo"+tmpVar]._width;
indexArr.unshift(tmpVar);
}
if ((this["photo"+i]._x)<mcLast2)
{
tmpVar =indexArr.shift();
this["photo"+tmpVar]._x=this["photo"+indexArr[N-2]]._x+this["photo"+indexArr[N-2]]._width;
indexArr.push(tmpVar);
}
this["photo"+i]._x+=shag;
}
}