Проверил ваш код. Никакого безумства не заметил. Единственное что, упростил бы слегка:

Код AS1/AS2:
var speed:Number = 3;
var minY:Number = 9;
var maxY:Number = 576;
Mouse.addListener(this);
scroll_mc._y = truncate(minY, maxY, scrol_mc._y);
function onMouseWheel(delta):Void
{
scroll_mc._y = truncate(minY, maxY, scroll_mc._y + speed * delta);
}
function truncate(min:Number, max:Number, n:Number):Number
{
return Math.max(min, Math.min(max, n));
}