Просмотр полной версии : cкроллер для ресайза фотки ?
привет всем
вобщем надумал написать скроллер, который будет увеличивать или уменьшать размер фотки
есть скроллер у него есть начало 0 и конец 100 ( это по Y )
есть минимальный размер 200на200 и конечный 1000на1000
при 0 на скроллере, фотграфия размером 200x200, при 100, соотвественно 1000x1000
собственно нужна формула, которая при промежуточной позиции скроллера, будет выдавать нужное разрешение
ай нид хелп )))))
bicubic_bublic
10.11.2009, 10:56
у вас несколько версий фотографии разного качества и нужно подгружать нужную по необходимости?
если нет - тогда
MIN_SCROLLER_POS = 0;
MAX_SCROLLER_POS = 100;
MIN_IMAGE_SIZE = 200;
MAX_IMAGE_SIZE = 1000;
relativeScrollerPosition = (scroller.y - MIN_SCROLLER_POS) / (MAX_SCROLLER_POS - MIN_SCROLLER_POS);
imgMinScale = Math.min(MIN_IMAGE_SIZE / (img.width / img.scaleX), MIN_IMAGE_SIZE / (img.height / img.scaleY) );
imgMaxScale = Math.min(MAX_IMAGE_SIZE / (img.width / img.scaleX), MAX_IMAGE_SIZE / (img.height / img.scaleY));
imgCurrentScale = imgMinScale + (imgMaxScale - imgMinScale) * relativeScrollerPosition;
img.scaleX = img.scaleY = imgCurrentScale;
var a:Number = pimpStart;
var b:Number = pimpStop;
var c:Number = heightOrigin;
var d:Number = 390;
var n:Number = pimp.y;
var x:Number = (n-b)*(c-d)/(a-b)+d;
var h:Number = x;
var w:Number = 0
var flag:Boolean = false;
var k:Number = flag ? Math.min(w/_bitmap.width, h/_bitmap.height) : Math.max(w/_bitmap.width, h/_bitmap.height);
_bitmap.scaleY = _bitmap.scaleX *= k;
мало-ли есть путь легче или кому то нада
тут
a = начало скроллера
b = конец
с = максимальная высота фотографии
d = минимальная
n = текущая позиция скроллера
_bitmap = сама картинка
Добавлено через 3 минуты
пока писал ответ самому себе, уже ответили ^^, бегло просмотрел предложенный вариант, вроде то же, только в профиль ))))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.