![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2007
Сообщений: 115
|
Здраствуйте господа. ПРоблема такова.
Делаю фотогалерею. Где фотки показываются поштучно. Как зделать, так чтобы пара фоток предзагружалась в библиотеку, пока показывается первая фотка. Чтобы не ждать загрузку каждый раз при показе. Подскажите метод загрузки изображений в библиотеку если такой есть. И есть ещё проблемка, когда изменяешь размеры картинки, она становится настолько искажённой(явно выраженные квадратики). А хотелось бы качественного отображения... Хотя JPEG quality 100% Последний раз редактировалось Liox; 25.11.2007 в 11:44. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
1. Создать клип, спрятать клип, загрузить в него картинку.
2. Дело не в качестве картинки, а в способе интерполяции ее данных при изменнеи размеров. Если картинка лежит в библиотеке, то надо поставить для нее галочку Allow smoothing. Если она подгружается, то все несколько сложнее. Надо загрузить картинку во временной мувиклип, снять с клипа изображение в объект BitmapData с помощью метода draw, выгрузить картинку, и в клип предназначенный для показа приаттачить объект BitmapData, указав 4-ым параметром true. Вот пример, который грузит картинку test.jpg и увеличивает ее в 1.5, слева обычная картинка, справа с примененим сглаживания. import flash.display.BitmapData;
//// клип в котороый будем показывать загруженную картинку картинку
var mcImageA:MovieClip = this.createEmptyMovieClip ("mcImageB", 0);
//// клип в котороый будем показывать картинку с примением сглаживания
var mcImageB:MovieClip = this.createEmptyMovieClip ("mcImageB", 1);
//// сюда будем снимать скриншот
var __bmp:BitmapData = null;
//// загрузчик
var __mcl:MovieClipLoader = new MovieClipLoader ();
__mcl.addListener (this);
__mcl.loadClip ("test.jpg", mcImageA);
function onLoadInit (target_mc:MovieClip) {
__bmp.dispose ();
__bmp = new BitmapData (mcImageA._width, mcImageA._height, true, 0x0);
__bmp.draw (mcImageA);
mcImageB.attachBitmap (__bmp, 0, null, true);
mcImageA._xscale = mcImageA._yscale = mcImageB._xscale = mcImageB._yscale = 150;
mcImageB._x = mcImageA._width;
}
|
|
|||||
|
Регистрация: Oct 2007
Сообщений: 115
|
Огромное спасибо. Даже несомневаюсь что сейчас всё заработает
![]() |
|
|||||
|
Регистрация: Jan 2008
Сообщений: 11
|
Что делать, если картинка не прямоугольная (она заполняет не весь битмап)?
|
|
|||||
|
Регистрация: Jan 2008
Сообщений: 11
|
Допустим у меня есть *.png. Пускай это будет круг (все вокруг окружности прозрачное).
Грузим его в мувиклип. Делаем BitmapData (белый квадрат) и используем draw(). Получаем битмап = белый квадрат в котором наш круг. Вопрос: как перегнать png в либрари, чтоб фон, который вне png-изображения был прозрачный? Заранее спасибо! |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 36
|
все это прекрасно и работает. теперь такая проблема - если с этим обектом играть масками (скажем, появляется под клипом-маской из 50 обектов), или просто brightness у него меняется, все ЖУТКО тормозит. если просто loadMovie то все нормально, но без сглаживания. что с этим можно сделать?
|
|
|||||
|
Регистрация: Mar 2006
Сообщений: 36
|
кстати, есть еще одна проблема, bitmapData.draw НЕБУДЕТ работать с картинками подгружаемыми с другого хоста. с тем-же хостом все ок, но если база лежит на том-же хосте но например в субдомене, то все, каюк, не работает. Обясняется, на сколько мне известно, что ето "проблема копирайта, чтоб не тырили контент сделано спецом и т.п.". Как это обходится? Кто знает?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 08:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|