Просмотр полной версии : заданный размер клипа
Punk T-34
24.05.2006, 20:11
Я подгружаю картинку извне в, создаваемый через createEmptyMovieClip("my-picture", 0), клип. Как мне задать конкретный размер для клипа my-picture? И уменьшится ли при этом рисунок?
(нужно, чтоб бОльшая сторона подгружаемой картинки соответствовала одной из сторон клипа - чтоб картинка не обрезалась)
эх в faq столько примеров, но люди любят по паре часов ждать пока им ответят.
Punk T-34
24.05.2006, 21:41
Но в FAQ не написано как ресайзить картинку или "выдирать" из неё кусок.
Ресайз делается через mx.transitions.TransitionManager.start() ?
Ресайз делается через _xscale и _yscale , а уж с твином или без дело твоё
Punk T-34
25.05.2006, 00:04
я так и делаю... но я делаю что-то не то и потому у меня не получаеться.
Вот:
у меня картинка грузится в клип, который генерируется кодом createEmptyMovieClip("my-picture", 0)
далее я, логически подумав, присваиваю этому клипу, собственно, нужные размеры:
my-picture._xscale %= 175;
my-picture._yscale %= 175;
Не работает.
Примечание: должно получиться что-то вроде фото-галереи с пролистыванием картинок.
Во первых что это за %= , к чему это здесь не понятно ?! а размеры менять нужно только после полной загрузки картинки, т.е. нужен прелоадер, и изменять с помощью обычного присваивания " = " а не " %= "
в факе кстати есть статья про прелоадеры =))))
Punk T-34
25.05.2006, 01:01
Это часть приложения, которое будет использоваться только на локальных машинах. В таком случае прелоадер всё равно нужен?
%= - это присваивание значения по модулю. Ё-моё, вот недавно с ним делал - получалось. Щас попробывал - не работает. Чё за?..
если делать просто через "=" то присваивается значение в % от исходного, а мне нужны строго заданные размеры для каждой картинки (потому и делал я через %=).
пример :
_root.createEmptyMovieClip("girls",1).loadMovie("image45.jpg");
_root.girls._x=257;
_root.girls._y=60;
_root.girls._xscale=100;
_root.girls._yscale=85;
//если теме нужно задавать не в процентах а в пикселях то
_width //это ширина
_height //это высота
P.S. На локальной машине прелоадеру нечего делать , и он необязательн .
Punk T-34
25.05.2006, 02:03
Ну не работает! :(
this.createEmptyMovieClip("square", 0);
square._x = 180;
square._y = 150;
square._width = 175;
square._height = 175;
аналогично же и не работает!
если делаю так:
square._xscale = 175;
square._yscale = 175;, то картинки увеличиваются на 75%. Тоесть 175% от исходного.
если днлаю так:
square._xscale *= 0.25;
square._yscale *= 0.25;, то картинка в 4 раза меньше от исходной (самый приемлемый, на данный момент, вариант)
А, вообще, мне надо чтоб рисунок уменьшался до тех пор, пока его бОльшая сторона не будет равна 175px.
Оператор % возвращает остаток от деления.
a = 200;
a %= 175; (a = a%175);
trace(a); // 25
А если у тебя ширина картинки a=200, высота b=100, то считаешь так:
a = 200;
b = 100;
max_ratio = Math.max(a,b)/175;
if (max_ratio>1) {
a /= max_ratio;
b /= max_ratio;
}
trace([a,b]);
Punk T-34
25.05.2006, 15:03
Это понятно, но если я не знаю, какого размера у меня картинки и, к тому же, они все разные по размеру...
А кто тебе мешает узнать размеры картинки сразу после загрузки, а потом изменить их?
Модуль это Math.abs();, а что касается прелоадера, то ту то он как раз нужен, потому как если картинка будет большой, то код может выполниться быстрее её загрузки, хотя на глаз это может быть незаметным, а так как нужно менять размеры после загрузки получится полная фигня ...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.