Скорость скроллера основана на трех вещах:
1 - частота кадров. Обработчик события ENTER_FRAME вызывается для каждого кадра, поэтому на него напрямую влияет частота кадров.
2- Число демпфирования скорости. В вашем случае это равно 0,02. Если вы хотите замедлить прокрутку, сделайте это меньшее число. Попробуйте 0,01 на половину скорости.
3- Расстояние указателя мыши до координаты центра х вашей сцены. Разница между указателем мыши и центром вашей сцены умножается на ваше число демпфирования скорости. Если вы хотите, чтобы движение прекратилось, когда вы находитесь в центре или вокруг него, измените код следующим образом:
var buffer:Number = 50;
function moveGallery(e:Event):void {
var diff = mouseX - centerX;
if (Math.abs(diff) > buffer)
speed = -(0.02 * (diff + (diff > 0 ? -buffer : buffer)));
else
speed = 0;
по запросу:
var centerX:Number = stage.stageWidth / 2;
var galleryWidth:Number = infiniteGallery.width;
var speed:Number = 0;
addEventListener(Event.ENTER_FRAME, moveGallery);
var buffer:Number = 100;
function moveGallery(e:Event):void {
var diff = mouseX - centerX;
if (Math.abs(diff) > buffer)
speed = -(0.02 * (diff + (diff > 0 ? -buffer : buffer)));
else
speed = 0;
infiniteGallery.x += speed;
if (infiniteGallery.x>0) {
infiniteGallery.x = -galleryWidth / 2;
}
if (infiniteGallery.x < -galleryWidth / 2) {
infiniteGallery.x = 0;
}
}