Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Увеличение фоток. onLoadInit, очистка содержимого контейнера (http://www.flasher.ru/forum/showthread.php?t=129525)

StepanR 03.09.2009 16:36

Увеличение загруженных фоток
 
В общем пытаюсь сделать зум для фоток в 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 обнаружил, что нажатия кнопок фиксируются правильно, а вот принадлежность фотки к одной из трех категорий(вытянутая по горизонтали, вертикали или слишком маленькая, что бы ее увеличивать - нет!)

RenoVATio 04.09.2009 20:09

Можно вопрос??? У вас код этот работает??? Потому что если одовременно таким onLoadInit загружать несколько картинок, то можно и комп повесить.

Запись типа
Код AS1/AS2:

target_mc._height/target_mc._width

1) плохо читается, поэтому, возможно, вам еще никто ничего не подсказал,
2) увеличивает нагрузку на процессор, когда вы каждый раз считываете target_mc._height

назначтте
Код AS1/AS2:

var TerW:Number=target_mc._height



Часовой пояс GMT +4, время: 04:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.