Вот вариант. работает гораздо быстрее. И главное - работает

Код:
function zoomIn(z){
if(_root.mapf._width<1500){ //максимальный размер
_width+=z*(20); //приращение
_height+=z*(20);
}
}
function zoomOut(z){
if(_root.mapf._width>480){
_root.mapf._width-=z*(20);
_root.mapf._height-=z*(20);
if(_root.mapf._width<480) _root.mapf._width=480; //минимальный размер карты
if(_root.mapf._height<480) _root.mapf._height=480;
var xneed=_root.mapf._width+_root.mapf._x, //если сместилась не так как надо - поправляем.
yneed=_root.mapf._height+_root.mapf._y;
if(xneed<480) _root.mapf._x+=480-xneed;
if(yneed<480) _root.mapf._y+=480-yneed;
}
}
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta) {
if(delta>0) zoomIn(1);
else zoomOut(1);
}
Mouse.addListener(mouseListener);