PDA

Просмотр полной версии : cкроллер для ресайза фотки ?


Artic
10.11.2009, 10:40
привет всем
вобщем надумал написать скроллер, который будет увеличивать или уменьшать размер фотки


есть скроллер у него есть начало 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;

Artic
10.11.2009, 10:56
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 минуты
пока писал ответ самому себе, уже ответили ^^, бегло просмотрел предложенный вариант, вроде то же, только в профиль ))))