Форум 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)
-   -   резиновая флэшка-сайт и не только (http://www.flasher.ru/forum/showthread.php?t=140649)

rainbowrussia 04.06.2010 23:50

Вложений: 1
Цитата:

Сообщение от mtbio (Сообщение 913136)
Лишнее пускай отрезается. Думаю не будет больших проблем, что бы сюжетно подготовить картинку под обрезание, то есть оставить главных героев воронов, а остальное пускай режиться.

Посмотрите вложение.

upd. Еще добавьте

Код AS1/AS2:

mcImg.forceSmoothing = true;

где-нибудь.

mtbio 05.06.2010 02:37

Просто супер!!! Спасибо за потраченное на меня время, я ваш должник.
У меня огромная просьба, если вас не затруднит расписать таким образом "var w = Stage.width; // текущая ширина сцены" скрипт. Понимаю, что это за геморрой, поэтому если "нет" то без претензий. объясню, я хотел бы понять, что за чем и почему, что бы в дальнейшем этим пользоваться. Спокойно менять и понимать, что за чем.

Еще раз спасибо!

rainbowrussia 05.06.2010 02:50

Код AS1/AS2:

Stage.scaleMode = 'noScale'; // отключаем масштабирование содержимого
Stage.align = 'TL'; // устанавливаем "ноль" слева вверху
 
// запоминаем исходную ширину и высоту картинки
var imgw = mcImg._width;
var imgh = mcImg._height;
 
// устанавливаем принудительное сглаживание картинки
mcImg.forceSmoothing = true;
 
// создаем объект с единственным методом - onResize
var resizer:Object = new Object();
 
resizer.onResize = function () {
        var sw = Stage.width; // ширина сцены
        var sh = Stage.height; // высота сцены
 
        // позиционирование клипов
        // тут идет математики, напрямую к флешу местами не относящаяся
        if (sw/sh > imgw / imgh) { // если картинку надо будет обрезать по высоте
                mcImg._x = 0; // левый край позиционируем на ноль по горизонтали
                mcImg._width = sw; // ширину картинки вытсавляем по ширине сцены
                mcImg._height = Math.round(sw * imgh / imgw); // выставляем высоту картинки, пропорционально ее изначальным размерам (чтобы не было искажения)
                mcImg._y = Math.round((sh - mcImg._height)/2); // сдвигаем ее вверх на половину выступающей за пределы сцены части
        } else {
                // аналогичный алгоритм, если размер сцены таков, что у картинки надо обрезать левый и правй край
                mcImg._y = 0;
                mcImg._height = sh;
                mcImg._width = Math.round(sh * imgw / imgh);
                mcImg._x = Math.round((sw - mcImg._width)/2);
        }
//        mcImg._x = sx; - эти две строчки лишние, забыл их убрать
//        mcImg._y = sy;
        // позиционируем текстовые элементы
        // в принципе их можно и не трогать, если они всегда слева вверху находятся
        // и их положение не зависит от размера сцены
        mcTxt1._x = mcTxt2._x = mcTxt3._x = 10;
        mcTxt1._y = 20;
        mcTxt2._y = mcTxt1._y + 50;
        mcTxt3._y = mcTxt2._y + 50;
}
 
// вызываем один раз наш метод, чтобы выстроить элементы в соответствии с текущими размерами сцены
// очень может быть что onResize полюбому сам должен вызваться, но лишним не будет
resizer.onResize();
 
// добавляем к сцене "слушателя" событий в виде нашего объекта
Stage.addListener(resizer);



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

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