Просмотр полной версии : Загрузка JPG в библиотеку
Здраствуйте господа. ПРоблема такова.
Делаю фотогалерею. Где фотки показываются поштучно. Как зделать, так чтобы пара фоток предзагружалась в библиотеку, пока показывается первая фотка. Чтобы не ждать загрузку каждый раз при показе.
Подскажите метод загрузки изображений в библиотеку если такой есть.
И есть ещё проблемка, когда изменяешь размеры картинки, она становится настолько искажённой(явно выраженные квадратики). А хотелось бы качественного отображения... Хотя JPEG quality 100%
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;
}
Огромное спасибо. Даже несомневаюсь что сейчас всё заработает :)
Что делать, если картинка не прямоугольная (она заполняет не весь битмап)?
Картинка всегда прямоугольная или речь идет о прозрачности?
Допустим у меня есть *.png. Пускай это будет круг (все вокруг окружности прозрачное).
Грузим его в мувиклип.
Делаем BitmapData (белый квадрат) и используем draw().
Получаем битмап = белый квадрат в котором наш круг.
Вопрос: как перегнать png в либрари, чтоб фон, который вне png-изображения был прозрачный?
Заранее спасибо!
А вы моим скиптом уже пользовались или это пока теоретический вопрос?
все это прекрасно и работает. теперь такая проблема - если с этим обектом играть масками (скажем, появляется под клипом-маской из 50 обектов), или просто brightness у него меняется, все ЖУТКО тормозит. если просто loadMovie то все нормально, но без сглаживания. что с этим можно сделать?
кстати, есть еще одна проблема, bitmapData.draw НЕБУДЕТ работать с картинками подгружаемыми с другого хоста. с тем-же хостом все ок, но если база лежит на том-же хосте но например в субдомене, то все, каюк, не работает. Обясняется, на сколько мне известно, что ето "проблема копирайта, чтоб не тырили контент сделано спецом и т.п.". Как это обходится? Кто знает?
Через пхп в своем домене.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.