Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Масштабирование объекта в окне (http://www.flasher.ru/forum/showthread.php?t=192673)

Riki 20.01.2013 23:02

Ой, Господи ну ошибся в знаке, проблема поменять?(притом выше есть пример для width)

Ну поставленная задача, это никак не пропорциональное масштабирование(Загуглите что вообще такое пропорция).

И теперь для меня вообще огромный вопрос, в чем проблема реализации была? Ведь нужно было тупо, поменять значения width и height для картинки на соответствующие значения для контейнера.


Цитата:

Вот здесь, почему одно и тоже, проверяем два раза? По моему здесь что-то не так.
Код AS3:
if (pLoader.height>fotoHolder_Height || pLoader.height>fotoHolder_Height) {
Я исправил на это:
Код AS3:
if (pLoader.height<fotoHolder_Height) {
Проблема сразу разрешилась. Обьект, стал пропорционально масштабироваться на всю рабочую область. Благодарю за помощь!:-)
И тут проблема НЕ разрешилась, а наоборот, просто условие для height выполняется, так как вы берете картинку больше чем контейнер(ведь вы поменяли условие что бы была проверка только для картинок меньше по высоте чем контейнер).


И последние 2 вопроса для Вас: вы программист? и где вы учитесь?

StasHappy 21.01.2013 05:03

Цитата:

Ой, Господи ну ошибся в знаке, проблема поменять?(притом выше есть пример для width)
Вот вот, я же говорил что здесь чтото не так.:)

Вчера после работы, посидел чутка с тетрадкой и калькулятором. У меня вышел такой вариант:

Код AS3:

if(ldr.width!=stage.stageWidth && ldr.height!=stage.stageHeight) {
var delitel;
 
if (ldr.width>stage.stageWidth && ldr.height>stage.stageHeight) {
if(ldr.width!=ldr.height) {
        if(ldr.width>ldr.height) {
                if(ldr.width/ldr.height<=stage.stageWidth/stage.stageHeight) {
                        delitel = ldr.width/stage.stageWidth;
                        ldr.width = ldr.width/delitel;
                        ldr.height = ldr.height/delitel;
                } else {
                        delitel = ldr.height/stage.stageHeight;
                        ldr.width = ldr.width/delitel;
                        ldr.height = ldr.height/delitel;
                }
        } else {
                        delitel = ldr.width/stage.stageWidth;
                        ldr.width = ldr.width/delitel;
                        ldr.height = ldr.height/delitel;
        }
} else {
                        delitel = ldr.width/stage.stageWidth;
                        ldr.width = ldr.width/delitel;
                        ldr.height = ldr.height/delitel;
}
}
 
 
if(ldr.width<stage.stageWidth && ldr.height>=stage.stageHeight) {
        delitel = stage.stageWidth / ldr.width;
        ldr.width = ldr.width*delitel;
        ldr.height = ldr.height*delitel;
}
 
if(ldr.width>=stage.stageWidth && ldr.height<stage.stageHeight) {
        delitel = stage.stageHeight/ldr.height;
        ldr.width = ldr.width*delitel;
        ldr.height = ldr.height*delitel;
}
 
 
 
 
if(ldr.width<stage.stageWidth && ldr.height<stage.stageHeight) {
if(ldr.width!=ldr.height) {
        if(ldr.width>ldr.height) {
                if(ldr.width/ldr.height>stage.stageWidth/stage.stageHeight) {
                        delitel = stage.stageHeight/ldr.height;
                        ldr.width = ldr.width*delitel;
                        ldr.height = ldr.height*delitel;
                } else {
                        delitel = stage.stageWidth/ldr.width;
                        ldr.width = ldr.width*delitel;
                        ldr.height = ldr.height*delitel;
                }
        } else {
                        delitel = stage.stageWidth/ldr.width;
                        ldr.width = ldr.width*delitel;
                        ldr.height = ldr.height*delitel;
        }
} else {
                        delitel = stage.stageWidth/ldr.width;
                        ldr.width = ldr.width*delitel;
                        ldr.height = ldr.height*delitel;
}
}
 
 
}

Где ldr - это наш обьект. Данный код, расчитан на альбомный тип окна(другой мне в общем то сейчас и не нужен).

Цитата:

И последние 2 вопроса для Вас: вы программист? и где вы учитесь?
А насчет этого.. Да нет, я уже давно отучился. А из программирования, работал только с С++ и PHP.


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

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