Решение состоит не в том, чтобы при отпускании ползунка (onRelease) проверять, к которой фиксированной позиции он ближе всего находится, а в том, чтобы вычислять саму эту позицию, и устанавливать туда скроллер.
Допустим три позции ползунка имеют координаты 0, 300, 600 (то есть шаг = 300).
Тогда примерно так:
Код AS1/AS2:
import mx.transitions.Tween;
scroller.onPress = function ()
{
this.startDrag(false, 0, this._y, 600, this._y);
};
scroller.onRelease = scroller.onReleaseOutside = function()
{
this.stopDrag();
var pos:Number = Math.round(this._x / 300); //получаем ближайший номер позиции
var setX:Number = pos * 300;
var myTween:Tween = new Tween(this, '_x', mx.transitions.easing.Strong.easeOut, this._x, setX, 0.5, true);
};
Разумеется, насчет драга у вас реализация может быть иная, в этом примере вам главным образом нужно смотреть на вычисление и установку координаты ползунка при отпускании.
Для плавной (равнозамедленной) установки ползунка в полученную позицию используем класс Tween и тип easing'а - Strong.easeOut.
О них можно почитать в хелпе.
PS. Исходник вашего пример у меня не открылся, но на самом деле тут мне проще свое накидать для объяснения.
Сам пример во вложении: