В общем пытаюсь сделать зум для фоток в LoadInit

Код AS1/AS2:
myListener.onLoadInit = function(target_mc:MovieClip) {
w = target_mc._width; //натуральная ширина картинки
h = target_mc._height;//натуральная высота
var v;
if ((target_mc._height/target_mc._width)>(_parent.maska._height/_parent.maska._width)) {
target_mc._height = _parent.maska._height;
target_mc._width = target_mc._width*_parent.maska._height/h; v = 1;
if (h < _parent.maska._height){v = 3;}
}
if ((target_mc._height/target_mc._width)<(_parent.maska._height/_parent.maska._width)) {
target_mc._width = _parent.maska._width;
target_mc._height = target_mc._height*_parent.maska._width/w; v= 2;
if (w < _parent.maska._width){v = 3;}
}
var ww = target_mc._width;//ширина картинки для выравнивания под окно просмотра
var hh = target_mc._height;//высота картинки для выравнивания под окно просмотра
target_mc._x = Math.round((_parent.maska._width/2)-(target_mc._width/2));
target_mc._y = Math.round((_parent.maska._height/2)-(target_mc._height/2));
if(v==1){
_parent.zoom_in.onRelease = function(){
if((target_mc._width * _root.zoom_*1.1) < w){target_mc._width = target_mc._width * _root.zoom_; target_mc._height = target_mc._height * _root.zoom_;}
else{target_mc._width = w; target_mc._height = h;}
target_mc._x = Math.round((_parent.maska._width/2)-(target_mc._width/2));
target_mc._y = Math.round((_parent.maska._height/2)-(target_mc._height/2));
};
_parent.zoom_out.onRelease = function(){
if((0.9 * target_mc._width / _root.zoom_) > target_mc.ww){target_mc._width = target_mc._width / _root.zoom_; target_mc._height = target_mc._height / _root.zoom_;}
else{target_mc._width = ww; target_mc._height = hh;}
target_mc._x = Math.round((_parent.maska._width/2)-(target_mc._width/2));
target_mc._y = Math.round((_parent.maska._height/2)-(target_mc._height/2));
};
}
if(v==2){
_parent.zoom_in.onRelease = function(){
if((target_mc._height * _root.zoom_*1.1) < h){target_mc._width = target_mc._width * _root.zoom_; target_mc._height = target_mc._height * _root.zoom_;}
else{target_mc._width = w; target_mc._height = h;}
target_mc._x = Math.round((_parent.maska._width/2)-(target_mc._width/2));
target_mc._y = Math.round((_parent.maska._height/2)-(target_mc._height/2));
};
_parent.zoom_out.onRelease = function(){
if((0.9 * target_mc._height / _root.zoom_) > hh){target_mc._width = target_mc._width / _root.zoom_; target_mc._height = target_mc._height / _root.zoom_;}
else{target_mc._width = ww; target_mc._height = hh;}
target_mc._x = Math.round((_parent.maska._width/2)-(target_mc._width/2));
target_mc._y = Math.round((_parent.maska._height/2)-(target_mc._height/2));
};
}
if(v==3){}
};
обнаружил странную закономерность - если все фотки только увеличивать (zoom_in.onRelease), все работает, а если фотку уменьшать, то при увеличении следующей она уменьшается. И наоборот, на уменьшение - увеличивается!
trace обнаружил, что нажатия кнопок фиксируются правильно, а вот принадлежность фотки к одной из трех категорий(вытянутая по горизонтали, вертикали или слишком маленькая, что бы ее увеличивать - нет!)