Форум 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)
-   -   onResize (пропорциональное изменение картинки) (http://www.flasher.ru/forum/showthread.php?t=116033)

cannabizzz 18.09.2008 12:47

onResize (пропорциональное изменение картинки)
 
Доброе утро! Перекопал что мог уже, но ответа так и не нашёл. Делаю галлерею. Суть такая, что изображения должны растягиваться на всю ширину и высоту экрана и в случае, если пропорции где-то не совпадают, то картинка должна снизу или справа уходить за пределы экрана (наверное лучше даже потом сделаю, чтобы выравнивалось всё по центру и уходило поровну слева, справа и сверху, снизу).

Вот что имеется сейчас:
http://jamaicaa.lv/temp/gallery/gallery.html

Когда картинка загрузилась и я меняю размеры браузера по высоте, то картинка нормально масштабируется и сбоку срезается лишнее, а если меняю размеры по ширине, то снизу появляется чёрная полоса.

Я пробовал сделать две одинаковые функции, но меняющие или ширину, или высоту типа если ширина мувика превышает Stage.width, то работает один скрипт, если высота мувика превышает Stage.height, то врубается второй скрипт, то нам всё время что-то начинает конфликтовать и по ширине картинка начинает прыгать. Есть какое-то простое решение? В результате масштбирование должно получиться как здесь: http://www.brook-pifer.com/

исходники здесь: http://jamaicaa.lv/temp/gallery/Archive.zip

cannabizzz 18.09.2008 13:48

всё, вопрос закрыт. была ошибка в строчке:
if (Stage.width / Stage.height >= 0) {

а надо было

if (Stage.width / Stage.height >= defwidth) {

Если кому-то нужно, то вот код:
Код:

var sizeListener:Object = new Object();
sizeListener.onResize = function() {
var defwidth = image_mc._width / image_mc._height; // узнаём пропорции загружаемого изображения
        if (Stage.width / Stage.height >= defwidth) {
                image_mc._width = ( Stage.width / image_mc._width ) * (image_mc._height * defwidth);
                image_mc._height = image_mc._width / defwidth;
        }
        else {
                image_mc._height = ( Stage.height / image_mc._height ) * (image_mc._width / defwidth);
                image_mc._width = image_mc._height * defwidth;
        }
}

var image_mcl:MovieClipLoader = new MovieClipLoader();
Stage.addListener(sizeListener);
image_mcl.loadClip("photos/1.jpg", image_mc);



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

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